我想知道如何检查对象是否仍然存在于数组中
var a = [{ "id": 1, "name": "Jeffery" }, { "id": 2, "name": "Jimmy" }]
我试图查找Jeffery
是否仍在此数组中:
var obj = { "names": { "Jeffery": { "age": 43, "job": "Doctor" }, "Jimmy": { "age": 23, "job": "Developer" } } };
我试图使用这个没有运气的代码。我做错了吗?
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i] === obj) {
return true;
}
}
return false;
}
答案 0 :(得分:2)
您可以使用in
operator检查对象中的属性。
如果指定的属性位于指定的对象中,
in
运算符将返回true
。
function contains(name, obj) {
return name in obj.names;
}
var obj = { names: { Jeffery: { age: 43, job: "Doctor" }, Jimmy: { age: 23, job: "Developer" } } };
console.log(contains('Jeffery', obj));
console.log(contains('Foo', obj))
&#13;
答案 1 :(得分:0)
使用函数contains
,您可以检查所需的名称:'Jeffery'
位于对象中,也位于数组中:
var a = [{ "id": 1, "name": "Jeffery" }, { "id": 2, "name": "Jimmy" }],
obj = { "names": { "Jeffery": { "age": 43, "job": "Doctor" }, "Jimmy": { "age": 23, "job": "Developer" } } };
function contains(name, a, obj) {
return obj.names[name] && a.filter(o => o.name === name) ? true : false;
}
console.log(contains('Jeffery', a, obj));
console.log(contains('Jimmy', a, obj));
console.log(contains('Foo', a, obj));
&#13;