Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Фильтрация объектов из массива и обрезка ссылки

#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? В конечном итоге, результат должен быть таким:
Name 01(/logo01.png)
Name 02(/logo02.png)
Name 04(/logo04.png)
Name 05(/logo05.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;


Комментариев нет:

Отправить комментарий