在数组中查找具有特定值的对象

时间:2018-09-22 20:08:57

标签: javascript arrays object

我有一个对象数组,如下所示:

direct

现在,我想检查数组中是否包含名称为“ Mike”的对象。

如何在javascript中进行此操作?

我在想这样的事情,但不确定如何做:

"users": [
   {
     "type": "User",
     "userId": "5b774905c2b2ac0f33ac4cc7",
     "name": "Mike"
   },
   {
     "type": "User",
     "userId": "5b77490f3084460f2986bd25",
     "name": "Pater"
   }
]

希望对此有所帮助,在此先感谢;-)

5 个答案:

答案 0 :(得分:3)

有很多实现方法,例如,以下是四种ES6方法:

  1. some()将根据情况返回truefalse。它进行测试,是否列出了一个符合条件的元素
  2. find()将返回一个项目本身(第一个匹配的项目),如果条件的值为true,则返回undefined,如果条件的值为false
  3. findIndex()将返回该项目的索引(第一个匹配的索引)(如果条件评估为true,则返回-1,如果条件评估为false
  4. filter()将创建一个符合条件的所有项目的新数组(否则将返回一个空数组)

const users = [
   {
     "type": "User",
     "userId": "5b774905c2b2ac0f33ac4cc7",
     "name": "Mike"
   },
   {
     "type": "User",
     "userId": "5b77490f3084460f2986bd25",
     "name": "Pater"
   }
];

const someObject = users.some(item => item.name === 'Mike');
const targetObject = users.find(item => item.name === 'Mike');
const targetIndex = users.findIndex(item => item.name === 'Mike');
const filteredObjects = users.filter(item => item.name === 'Mike');

console.log('someObject:', someObject)
console.log('targetObject:', targetObject)
console.log('targetIndex:', targetIndex)
console.log('filteredObjects:', filteredObjects)

答案 1 :(得分:0)

File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default worker_1 | raise HTTPError(req.full_url, code, msg, hdrs, fp) worker_1 | OSError

urllib

users.find(user => user.name ==='Mike')

答案 2 :(得分:0)

您需要检查内部对象的属性users.filter(user => user.name ==='Mike').length !== 0的值。

此提议检查每个对象(因为未授予它),users.map(user => user.name).includes('Mike')是唯一的。

name

答案 3 :(得分:0)

if(users.find(({ name }) => name === "Mike")) {
    // do your thing
}

答案 4 :(得分:0)

Some是任务的工作。它会根据回调是否存在值来返回truefalse

let users = [
   {
     "type": "User",
     "userId": "5b774905c2b2ac0f33ac4cc7",
     "name": "Mike"
   },
   {
     "type": "User",
     "userId": "5b77490f3084460f2986bd25",
     "name": "Pater"
   }
]


console.log(users.some(i => i.name == 'Mike'))
console.log(users.some(i => i.name == 'Joe'))