@Viplayer

Как перебрать массив?

Есть массив :

let info = [ 
  {
      title : "QWERT",
      id : "1"
  },
  {
      title : "LOL",
      id : "1"
  },
  {
      title : "KEK",
      id : "2"
  }
]


как перебрать его так, чтобы получить все значения (title) только по id 1, пробовал через for и foreach, но по итогу в 1й переменной было 2 ответа в виде массива, а я мне надо склеить новый массив из полученных данных. concat тоже не помогает.

Нужно типо ф-ции, которая вернет новый массив
  • Вопрос задан
  • 112 просмотров
Решения вопроса 2
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
Используйте map и filter:
const finder = id => info
  .filter(el => Number(el.id) === Number(id))
  .map(el => el.title);

finder(1)
Ответ написан
WblCHA
@WblCHA
Имхо, фильтр с мапом тут использовать незачем. Задачка прямо для редьюса.
const getTitlesById = (arr, id) => {
  const idString = id.toString();

  return arr.reduce((acc, el) => {
    if(el.id === idString) {
      acc.push(el.title);
    }
    return acc;
  }, []);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@66demon666
По навыкам джун - по факту безработный
Вне цикла объявляешь массив, В цикле проходишь, проверяешь условие, запихиваешь в массив.
Ответ написан
Комментировать
webdisigner
@webdisigner
Array.prototype.findBy = function(field, value){
  return this.filter(c=>c.hasOwnProperty(field) && c[field] == value)
}


  let filtered = info.findBy('id', 1)
  console.log(filtered)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы