检查数组中是否存在相同的对象 - Javascript

时间:2018-05-25 06:56:40

标签: javascript

我有一个对象数组如下

[{name: "jack", age: 10}, {name: "john", age: 15}]

考虑我有一个对象

{name: "jack", age: 10}

现在我需要检查数组中是否存在此对象。如果对象的所有属性(名称,年龄)都匹配,则在页面上显示警报。

如何使用纯JavaScript实现此目的?

4 个答案:

答案 0 :(得分:0)

使用Array.someArray.everyObject.entries

如果

,将会计算一场比赛
  • 键数相同
  • 每个键/值对都匹配

var arr = [{name: "jack", age: 10}, {name: "john", age: 15}];

var input = {name: "jack", age: 10};

var result = arr.some((o) => Object.entries(input).every(([k,v]) => o[k] === v) && Object.keys(input).length === Object.keys(o).length);

console.log(result);

答案 1 :(得分:0)

试试这个:

var data = [{name: "jack", age: 10}, {name: "john", age: 15}];
var input = {name: "jack", age: 10};
for(var i=0;i<data.length;i++)
{
    if(data[i].name==input.name && data[i].age == input.age)
    {
        alert('matched');
        break;
    }
}

答案 2 :(得分:0)

这可能是一个表现不佳的方法,但它可以轻松覆盖嵌套对象的情况。此选项仅适用于所有键/值对必须匹配且键/值对以相同顺序定义的情况。

&#13;
&#13;
let c = [{name: "jack", age: 10}, {name: "john", age: 15}],
    s = {name: "jack", age: 10};

console.log(c.filter(e => JSON.stringify(s) === JSON.stringify(e)));
&#13;
&#13;
&#13;

答案 3 :(得分:0)

如果您不想检查数组对象内的对象索引

,可以尝试此操作

var obj = [{name: "jack", age: 10}, {name: "john", age: 15}];

var checkObj = {name: "john", age: 15};

if(JSON.stringify(obj).indexOf(JSON.stringify(checkObj)) >= 0){
  console.log("Object Available");
}else{
  console.log("Object Not Available");
}

相关问题