У меня есть следующий объект, я не уверен, как поступить.

Изображение объекта

Как я могу просмотреть все объекты и выбрать контент массив и найти значение x . И когда значение x находится в объекте, мне нужно получить заголовок объекта от объекта, в котором было найдено значение.

Может кто-нибудь дать мне подсказку, как я могу решить эту проблему?

0
Stark Toni 29 Авг 2017 в 18:38

3 ответа

Лучший ответ

Вы можете использовать for ... in для перебора объекта и indexOf(), чтобы проверить, существует ли ключ в содержимом массива. что-то вроде этого:

function searchVal(x){
     for(var key in obj){
         if(obj[key].hasOwnProperty('content') && obj[key].content.includes(x))
             return key;
     }
}
1
Dij 29 Авг 2017 в 15:54

Вы можете использовать for...in для итерации ключей объекта, а затем обычный цикл for, чтобы проверить массив content для вашего конкретного значения:

function findTitle(x) {
    for (var key in obj) {
        for (var i = 0; i < obj[key].content.length; i++) {
            if (obj[key].content[i] === x) {
                return key;
            }
        }
    }
}
1
tymeJV 29 Авг 2017 в 15:41
let name = Object.values( obj /*your main object*/ )
       .find( obj => obj.content.includes(x) )
       .name;

Вы можете найти первый объект в значениях объектов вашего основного объекта, который имеет свойство content , которое включает в себя х, а затем получить имя этого объекта.

0
Jonas Wilms 29 Авг 2017 в 15:48