#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;
Комментариев нет:
Отправить комментарий