确定对象数组是否包含基于键的条目

时间:2017-04-10 08:57:06

标签: javascript ecmascript-6

使用javascript / es6,我如何编写一个单行程序,返回一个布尔值,指明data是否包含theId == 3的条目:

let data = [{"name":"Tom",address:"Here","theId":"1"},{"name":"Neve",address:"There","theId":"2"}]

如果我仅限于以这种方式组织data

5 个答案:

答案 0 :(得分:6)

您可以使用some()和ES6箭头功能。



let data = [{"name":"Tom",address:"Here","theId":"1"},{"name":"Neve",address:"There","theId":"2"}]
var check = data.some(arr => arr.theId == 3);
console.log(check)




答案 1 :(得分:0)

data.filter(item => item.theId == 3).length > 0;

答案 2 :(得分:0)

对于一个班轮来说似乎有点复杂。

data.some((item) => {return item.theId === "3"});

答案 3 :(得分:0)

您可以对阵列使用some方法。

此方法遍历数组的每个元素,直到找到第一个可以返回true然后停止进一步迭代的情况。

data.some((obj) => {
  return obj.theId === 3;
});

如果找到带有theId : '3'的第一个元素,上面的代码将返回true,否则它将返回false;

示例https://jsbin.com/yubezizana/2/edit?js,console,output

答案 4 :(得分:0)

这就是我提出的:

data.map(x => x.theId).indexOf("3") > -1;