метод find выводит undefined

311
12 ноября 2017, 18:24
Clothes.prototype.getReviewByID = function(key){
  this.reviews.find(function(element){
    if(element.ID === key){
      return element;
    }
  })
};

Есть метод который находит объект по значению его свойства(ID) и возвращает объект где найдено совпадение. Find выводит undefined, а вот через цикл for(внизу) всё работает. Почему не работает find ??

Clothes.prototype.getReviewByID = function(key){
 for(var i = 0; i < this.reviews.length; i++) {
   if(this.reviews[i].ID === key){
     return this.reviews[i];
   }
 }
};
Answer 1

Нужно возвращать значение сравнения, а не элемент.

Доцументация

Правильный вариант:

Clothes.prototype.getReviewByID = function(key) {
  this.reviews.find(function(element) {
    return element.ID === key;
  });
};
READ ALSO
проблема с фейсбук [требует правки]

проблема с фейсбук [требует правки]

ПРи клике на кнопку фейсбук, окно открывается и тут же закрываетсяВсе остальные работают корректно

277
Как сделать поиск по родителю

Как сделать поиск по родителю

Здравствуйте, требуется сделать поиск по родителю, у меня есть 2 родителя с классом middle и в каждом из них блокtimer который содержит свой атрибут...

282
Как изменить механизм появления блока?

Как изменить механизм появления блока?

Добрый день! Подскажите, пожалуйста, как правильно изменить механизм появления блокаСейчас блок

308
как можно с помощью кнопки добавить перед последним абзацем изображение на языке Javascript?

как можно с помощью кнопки добавить перед последним абзацем изображение на языке Javascript?

как можно с помощью кнопки добавить перед последним абзацем изображение? Что нужно добавлять в ?

307