function findMatchByIdsAndIdsd(arr, arr2) {
// 创建一个映射(Map)或对象来快速查找 arr2 中的 idsd
const idsdMap = arr2.reduce((acc, obj) => {
acc[obj.idsd] = true; // 只关心是否存在,不关心值
return acc;
}, {});
// 遍历 arr 并找到 ids 也在 arr2 的 idsd 中存在的对象
return arr.find(obj => idsdMap[obj.ids]);
}
// arr2 数组(注意:这里我保留了 idsd,但通常你会希望它们都是 ids)
const arr2 = [
{ idsd: 1, name: '22张三' },
{ idsd: 2, name: '张三22' },
{ idsd: 1, name: '222张三22' }
];
// arr 数组
const arr = [
{ ids: 2221, name: '张三', arr: [{ id: 2, name: '张涨' }] },
{ ids: 2, name: '张三22', arr: [{ id: 17, name: '张涨' }] }, // 这是我们要找的对象
{ ids: 111, name: '张三22', arr: [{ id: 7, name: '张涨' }] }
];
// 调用函数
const matchedObj = findMatchByIdsAndIdsd(arr, arr2);
if (matchedObj) {
console.log(matchedObj);
} else {
console.log('没有找到 ids 在 arr 中且 idsd 在 arr2 中存在的匹配对象。');
}
运行的结果: