仅需提出一个条件,在该条件为真与否的情况下,我需要根据该条件显示一个块
我有一个具有以下结构的数组
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。如果“值”中的任何条目不是0,则返回true;
尝试过类似的操作。但似乎不起作用
const isZero= (currentValue) => currentValue === 0;
console.log(data.every(isZero));
您可以检查数组和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
您可以使用两个嵌套的some
方法执行此操作。
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 data2 = [
{ 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
const check = data => data.some(({ values }) => values.some(v => v !== 0))
console.log(check(data))
console.log(check(data2))
您可以检查.some
数据对象是否具有不是.some
的0
值属性:
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 data2 = [
{ 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
const verify = data => data.some(({ values }) => values.some(num => num !== 0));
console.log(
verify(data),
verify(data2)
);
您可以将some
应用于data
,遍历所有项目,然后在每个项目上再次使用some
,以查看其values
成员中是否包含不是0
的任何值:
data.some(item => item.values.some(v => v !== 0));