#javascript #массивы
Есть некий массив и простенькая функция по выводу данных из него: var arr=[ ['1','Name 01','/logo01.png','link01.html'], ['2','Name 02','/logo02.png','link02.html'], ['3','Name key 03','/logo03.png','link03.html'], ['4','Name 04','/logo04.png','link04.html'], ['5','Name 05','/logo05.png ~ /image.jpg','link05.html'], ['6','Name yek 06','/logo06.png','link06.html'], ] var text = ''; var i; for (i = 0; i < arr.length; i++) { text += "" + arr[i][1] + "(" + arr[i][2] + ")
"; } document.getElementById("test").innerHTML = text; Вопросы: Как правильно отфильтровать массив, убрав из него объекты, в которых содержатся "key" и "yek". Как оставить одну ссылку на изображение в этом случае /logo05.png ~ /image.jpg? То, есть, очистить все лишнее после /logoХХ.png? В конечном итоге, результат должен быть таким: Спасибо за любое решение или банальную ссылку на схожие примеры.
Ответы
Ответ 1
var arr = [ ['1','Name 01','/logo01.png','link01.html'], ['2','Name 02','/logo02.png','link02.html'], ['3','Name key 03','/logo03.png','link03.html'], ['4','Name 04','/logo04.png','link04.html'], ['5','Name 05','/logo05.png ~ /image.jpg','link05.html'], ['6','Name yek 06','/logo06.png','link06.html'], ]; var exclusions = [ "key", "yek" ]; var arr1 = arr.filter(item => { for (var j = 0; j < exclusions.length; j++) { if (item[1].indexOf(exclusions[j]) != -1) return false; } return true; }); var text = ''; var i; for (i = 0; i < arr1.length; i++) { text += "" + arr1[i][1] + "(" + arr1[i][2].split("~")[0].trim() + ")
"; } document.getElementById("test").innerHTML = text;
Комментариев нет:
Отправить комментарий