对作为对象一部分的每个数组元素都有条件
Having a conditon on every array element that's a part of an object
只需要提出一个条件,我需要根据条件是否为真来显示块
我有一个结构如下的数组
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
基本上我需要以这样一种方式进行检查:如果每个对象中 "values" 内的所有条目均为 0,则 return 为假。如果 "values" 中的任何条目不是 0 return true;
试过类似的东西。但是好像不工作
const isZero= (currentValue) => currentValue === 0;
console.log(data.every(isZero));
您可以检查 .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)
);
您可以检查数组和 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
应用于 data
,遍历所有项目,然后对每个项目再次使用 some
以查看其 values
成员是否有任何值其中不是 0
:
data.some(item => item.values.some(v => v !== 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 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
基本上我需要以这样一种方式进行检查:如果每个对象中 "values" 内的所有条目均为 0,则 return 为假。如果 "values" 中的任何条目不是 0 return true;
试过类似的东西。但是好像不工作
const isZero= (currentValue) => currentValue === 0;
console.log(data.every(isZero));
您可以检查 .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)
);
您可以检查数组和 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
应用于 data
,遍历所有项目,然后对每个项目再次使用 some
以查看其 values
成员是否有任何值其中不是 0
:
data.some(item => item.values.some(v => v !== 0));