我有一个对象的数组,如下所示:
direct
现在,我想检查数组中是否包含名称为“ Mike”的对象。
如何在javascript中进行此操作?
我在想这样的事情,但不确定如何做:
"users": [
{
"type": "User",
"userId": "5b774905c2b2ac0f33ac4cc7",
"name": "Mike"
},
{
"type": "User",
"userId": "5b77490f3084460f2986bd25",
"name": "Pater"
}
]
希望对此有所帮助,在此先感谢;-)
答案 0 :(得分:3)
有很多实现方法,例如,以下是四种ES6方法:
some()
将根据情况返回true
或false
。它进行测试,是否列出了一个符合条件的元素find()
将返回一个项目本身(第一个匹配的项目),如果条件的值为true
,则返回undefined
,如果条件的值为false
。findIndex()
将返回该项目的索引(第一个匹配的索引)(如果条件评估为true
,则返回-1
,如果条件评估为false
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是任务的工作。它会根据回调是否存在值来返回true
或false
。
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'))