angularjs:检查对象数组中是否存在值

时间:2018-05-17 06:23:33

标签: javascript angularjs

b._id

我想检查a[]中是否有a[] 注意: Parcelable是一个对象数组

8 个答案:

答案 0 :(得分:1)

试试这个..



    var a = [{ id:1}, {id:2}];
    var b={id:1};
    var arrayWithIds = a.map(function(x){
                               return x.id
                          }); // get new array contains all ids 
    var present = arrayWithIds.indexOf(b.id) != -1 // find the b.id array
    console.log(present);




以下是MapindexOf

的参考

答案 1 :(得分:0)

使用JavaScript的Array.map()功能进行检查。它还会比较id及其value

以下是工作代码:

var a = [{
  id: 1
}, {
  id: 2
}];
var b = {
  id: 1
};

if (a.map(x => x.id).indexOf(b.id) != -1) {
  console.log("Available");
} else {
  console.log("Not available");
}

答案 2 :(得分:0)

这应该有效:

var a = [ { id:1} ,{id:2} ];
var b={id:1}
console.log(a.findIndex(function(obj){return obj.id=b.id}))

indexOf在处理不带对象数组的索引数组时有效。

答案 3 :(得分:0)

请使用以下代码:



var a = [ { id:1}, {id:2} ];
var b={id:1}

function findMatch(element) {
  return element.id === b.id;
}

console.log(a.findIndex(findMatch));




答案 4 :(得分:0)

更好的方法是使用.find函数。

let a = [{
    id: 1
  }, {
    id: 2
  }],
  b = {
    id: 1
  },
  obj = a.find(function(itm) {
    return itm.id == b.id;
  });

console.log(obj)

并且还使用.findIndex函数来获取数组中项的索引。

let a = [{
    id: 1
  }, {
    id: 2
  }],
  b = {
    id: 1
  },
  objIndex = a.findIndex(function(itm) {
    return itm.id == b.id;
  });

console.log(objIndex)

使用.filter函数获取具有该条件的所有对象。

let a = [{
    id: 1
  }, {
    id: 2
  }],
  b = {
    id: 1
  },
  objArr =  a.filter(function(itm) {
      return itm.id == b.id;
  });

console.log(objArr)

答案 5 :(得分:0)

Array.map()函数比较id及其值,如果map由@Slava Utesinov评论,则返回一个布尔值



var a = [{id: 1}, {id: 2}];
var b = {id: 1};
if(a.map(x => x.id).indexOf(b.id) != -1){
  console.log("Exists");
}else{
  console.log("Not exists");
}




答案 6 :(得分:0)

试试这个

var a = [ { id:1} ,{id:2} ];

var b={id:1}

console.log(a.find(x=>x.id==b.id))// return matched record

var a = [ { id:1} ,{id:2} ];

var b={id:3}

console.log(a.find(x=>x.id==b.id)) //return undefined  

答案 7 :(得分:0)

您可以使用AngularJS的Filter

var a = [{id:1}, {id:2}];
var b = {id:1};

var found = false;
var filterResult = $filter('filter')(a, {id: b.id}, true);

if (filterResult.length > 0) {
    found = true;
}