检查对象数组中是否存在一个元素

时间:2017-04-20 12:12:11

标签: javascript arrays functional-programming

我有以下对象数组:

var memberships = [
  {
    id: 1,
    type: 'guest'
  },
  {
    id: 2,
    type: 'member'
  }
];

如何验证此类数组是否至少有一个类型为“member”的元素?

请注意,该数组也可以没有元素。

5 个答案:

答案 0 :(得分:5)

使用array.some()



var memberships = [{
    id: 1,
    type: 'guest'
  },
  {
    id: 2,
    type: 'member'
  }
];

var status = memberships.some(function(el) {
  return (el.type == 'member');
});
console.log(status);




Array.some()

Array.some() 对数组中的每个元素执行一次回调函数,直到找到一个回调返回truthy值的元素。如果找到这样的元素,some()会立即返回true。否则,some()返回false。

答案 1 :(得分:3)

您可以使用Array#some方法:

let exists = memberships.some(member => member.type === 'member');

然后,if(exists) ...

答案 2 :(得分:1)

您可以使用Array#some

var memberships = [
  {
    id: 1,
    type: 'guest'
  },
  {
    id: 2,
    type: 'member'
  }
];

console.log(memberships.some(m=>m.type==='member'));

答案 3 :(得分:1)

我认为这可能会有所帮助

let resultArray=memberships.filter(function(item) {
     return item["type"] === 'member';
});

结果数组保存具有类型成员

的对象的数据

答案 4 :(得分:0)

您还可以使用find,如果找到其他未定义的,则返回第一个对象。

let a = memberships.find(o => o.type === 'member');

if (a) {
  ...do something
}