Как мне пройти через вложенный объект, чтобы проверить, найден ли true? - PullRequest
0 голосов
/ 12 января 2019

У меня есть вложенный объект, я хочу пройтись по определенному свойству и проверить, существует ли true.

Если true не найдено, я хочу вернуть false, в противном случае, если есть один экземпляр true, я хочу остановить цикл.

let object = {
    firstProperty: 'foo',
    secondProperty: 'bar',
    objectProperty: {
        value1: false,
        value2: false,
        value3: true
}

Я хочу только пройти через objectProperty и вернуть true, если true найдено, и false, если true не найдено

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Ну, как только вы получите массив ключей, все будет просто. Вы можете получить это, используя метод Object.keys(obj), который вернет массив ключей данного объекта. Затем вы можете просто выполнить итерацию и проверить или использовать лямбда-функцию, в нашем случае, Reduce. Узел, в котором вы перебираете массив ключей, поэтому вы должны проверить obj[key] для определенного значения.

Я добавил jsfiddle с двумя рабочими примерами ниже.

let obj = {
    firstProperty: 'foo',
    secondProperty: 'bar',
    objectProperty: {
        value1: false,
        value2: false,
        value3: true
    }
};

// Method 1
let inner = obj.objectProperty;
let ans = Object.keys(inner).reduce((a, e) => inner[e] || a, false);
console.log(ans);

// Method 2
let found = false;
Object.keys(inner).forEach(key => {
  if (inner[key])
    found = true;
});

console.log(found);

Ура!

0 голосов
/ 12 января 2019

Проверьте, является ли какое-либо из значений истинным внутри объекта.

let object = {
    firstProperty: 'foo',
    secondProperty: 'bar',
    objectProperty: {
        value1: false,
        value2: false,
        value3: true
    }
}


const res = Object.values(object.objectProperty).some(value => value === true)

console.log(res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...