Метод проверки, содержит ли элемент массива в массиве ложь - PullRequest
0 голосов
/ 14 июля 2020

У меня есть состояние, которое содержит этот массив. Я пытаюсь написать метод, который просматривает каждый элемент в массиве «report» и проверяет массив «sets», чтобы увидеть, истинно ли «выполнено». Я ищу чистый код. Спасибо

введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Думаю, в вашем случае это должно сработать:

const reports = [
  {
    sets: 
    [
      {
        completed: true
      },
      {
        completed: true
      } 
    ]
  },
  {
    sets: 
    [
      {
        completed: true
      },
      {
        completed: true
      } 
    ]
  },
  {
    sets: 
    [
      {
        completed: true
      },
      {
        completed: true
      } 
    ] 
  }
]


const isTrue = reports.reduce((acc, report) => {
  return acc ? report.sets.every((el) => el.completed === true) : false;
}, true);

console.log(isTrue);
1 голос
/ 14 июля 2020

L oop больше Object.values каждого объекта с Array#some.

const notCompleted = Object.values(obj.report)
     .some(({sets})=>sets.some(({completed})=>!completed));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...