繁体   English   中英

使用JavaScript检查元素是否在对象内包含的数组内

[英]Checking if an element is inside an array contained within an object using JavaScript

我有一个对象,其中包含对象数组

{ 
    0: [
          { value:1}
          { value:2}
          { value:3}

       ]
}

我正在尝试检查元素是否在数组内,所以我正在做的事情像Object.values(object).some(el => el.value === someNumber)那样遍历它,但它总是返回假的,任何人都有什么想法为什么? someNumber可以是任何值,它是一个动态值。

您需要另一个级别,因为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))); 

您尝试用someNumber检查el实际上是数组,我认为是number。 要执行您想做的事情,您需要像这样:

 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) 

该数组位于对象的[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)); 

除非您的对象可以包含更多属性,并且您要搜索所有这些属性。 那么其他答案就更正确了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM