我有一个对象,其中包含一个对象数组,例如
{
0: [
{ value:1}
{ value:2}
{ value:3}
]
}
我正在尝试检查元素是否在数组内,所以我在做的事情像是在遍历它
Object.values(object).some(el => el.value === someNumber)
,但它始终返回false,为什么有人有任何想法? someNumber
可以是任何值,它是一个动态值。
答案 0 :(得分:2)
您需要另一个级别,因为Object.values
返回一个数组的数组。
var object = { 0: [{ value: 1 }, { value: 2 }, { value: 3 }] };
console.log(Object.values(object).some(values => values.some(el => el.value === 2)));
console.log(Object.values(object).some(values => values.some(el => el.value === 7)));
答案 1 :(得分:2)
您尝试用el
检查实际上是数组的someNumber
,我认为是数字。要执行您想做的事情,您需要这样:
const obj = {
0: [
{ value:1},
{ value:2},
{ value:3}
]
}
const someNumber = 2;
const result = Object.values(obj).some((arr) => arr.some((el) => el.value === someNumber));
console.log(result)
答案 2 :(得分:2)
该数组位于对象的[0]
元素中,因此您应该使用object[0]
而不是Object.values(object)
。
const object = {
0: [
{ value:1},
{ value:2},
{ value:3}
]
}
console.log(object[0].some(el => el.value === 1));
console.log(object[0].some(el => el.value === 6));
除非您的对象可以包含更多属性,并且您要搜索所有这些属性。然后其他答案更正确。