【发布时间】:2017-11-19 22:55:29
【问题描述】:
假设我有一个对象数组
var arr= [{name:'John', lastName:'Smith', age:25}, {name:'Steve', lastName:'Johnson', age:56}];
var obj1 ={name:'John', lastName:'Smith'};
如何使用JS检查一个对象是否存在于另一个对象中?
嵌套循环能解决问题吗?第一个循环遍历数组内的对象,第二个循环遍历对象内的键/值对并将它们与 obj1 键/值对进行比较?有一个更好的方法吗 ?还是我应该使用 3 个循环?
函数应该返回包含 obj1 的 arr 中的 obj el。例如: arr[0] 应该返回,因为它包含 obj1
function objInArr(srcArr, obj) {
var arr = [];
//var srcLength = 0;
//var sourceSize = Object.keys(source).length; // The length of the source obj
srcArr.forEach(function(el) {
el.forEach(function(objEl){
obj.forEach(function(sourceEl){
if( sourceEl === objEl) { arr.push(sourceEl); }
});
});
});
return arr;
}
【问题讨论】:
标签: javascript