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

Mig*_*ura 3 javascript arrays functional-programming

我有以下对象数组:

var memberships = [
  {
    id: 1,
    type: 'guest'
  },
  {
    id: 2,
    type: 'member'
  }
];
Run Code Online (Sandbox Code Playgroud)

如何验证这样的数组是否至少有一个类型为"member"的元素?

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

Dan*_*tir 5

您可以使用Array#some方法:

const memberExists = memberships.some(member => member.type === 'member');

然后, if(memberExists) ...


Dan*_*lip 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);
Run Code Online (Sandbox Code Playgroud)

Array.some()

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


sra*_*thi 1

我认为这可能有帮助

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

结果数组保存具有成员类型的对象的数据