我有以下对象数组:
var memberships = [
{
id: 1,
type: 'guest'
},
{
id: 2,
type: 'member'
}
];
如何验证此类数组是否至少有一个类型为“member”的元素?
请注意,该数组也可以没有元素。
答案 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() 对数组中的每个元素执行一次回调函数,直到找到一个回调返回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
}