首页 > 解决方案 > 在作为对象一部分的每个数组元素上都有一个条件

问题描述

只需要提出一个条件,我需要根据条件显示一个块是否为真

我有一个具有以下结构的数组

const data = [
  { name: "item1" , values : [0,0,0,0,0]},
  { name: "item2" , values : [0,0,0,0,0]},
  { name: "item3" , values : [0,0,0,0,0]}
] // return false

const data = [
  { name: "item1" , values : [0,0,0,0,0]},
  { name: "item2" , values : [0,1,0,0,0]},
  { name: "item3" , values : [0,0,0,0,0]}
] // return true

基本上我需要以这样一种方式进行检查,如果每个对象中“值”内的所有条目都是 0,则返回 false。如果“values”中的任何条目不是 0,则返回 true;

尝试过这样的事情。但似乎不工作

const isZero= (currentValue) => currentValue === 0;
console.log(data.every(isZero));

标签: javascriptecmascript-6ecmascript-5

解决方案


您可以检查数组和values.

const check = array => array.some(({ values }) => values.some(Boolean));

console.log(check([{ name: "item1", values: [0, 0, 0, 0, 0] }, { name: "item2", values: [0, 0, 0, 0, 0] }, { name: "item3", values: [0, 0, 0, 0, 0] }])); // return false
console.log(check([{ name: "item1", values: [0, 0, 0, 0, 0] }, { name: "item2", values: [0, 1, 0, 0, 0] }, { name: "item3", values: [0, 0, 0, 0, 0] }])); // return true


推荐阅读