@SergOdinokiy

Почему функция не находит?

Помогите с функцией... Почему она не находит find должен же возвращать искомое что я делаю не так?
let r={
        [1]:[{uid:54}],
        [2]:[{uid:67}]
    };
    const find=Object.keys(r).forEach(i=> r[i].find(data => data.uid === 54));
    if(find===undefined){
        console.log('Нету')
    }
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
@Che603000
c 2011 javascript
forEach ничего не возвращает. В результате find === undefined
Можно использовать мар
const find=Object.keys(r).map(i=> r[i].find(data => data.uid === 54));

Тогда find будет содержать массив найденных объектов. В вашем случае
[{uid:54, undefined ]
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
const find = Object.values(r).find(el => el[0].uid === 54); // [{uid: 54}]


В массивах всегд единственный элемент вложен? Если нет, приводите полный пример всех «неудобных» случаев.

Ищется первое совпадение, или их может быть несколько?
Ключи исходного объекта не играют роли?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы