function findMatchingObjects(arr, obj) { // 用于存储匹配的对象 let matchingObjs = [];
// 循环遍历数组中所有的对象 arr.forEach((item) => { // 默认假设当前对象匹配 let isMatching = true;
// 循环遍历第二个对象的所有属性值对
for (let key in obj) {
// 如果当前对象没有对应的属性或属性值不匹配,将其标记为不匹配
if (!item.hasOwnProperty(key) || item[key] !== obj[key]) {
isMatching = false;
break;
}
}
// 如果当前对象匹配,将其添加到匹配的结果列表中
if (isMatching) {
matchingObjs.push(item);
}
});
// 返回匹配的结果列表 return matchingObjs; }
// 示例用法 let people = [ { name: 'Alice', age: 25, gender: 'female' }, { name: 'Bob', age: 30, gender: 'male' }, { name: 'Charlie', age: 20, gender: 'male' }, ];
let query = { age: 25, gender: 'female' };
let matchingPeople = findMatchingObjects(people, query);
console.log(matchingPeople); // [{ name: 'Alice', age: 25, gender: 'female' }]