如图想提取options和data中id相同的对象,除了用双循环还有什么办法呢
肯定是需要遍历一遍的。维护一个空间,如果存在就push。
比如说用options维护存在列表。然后用data去push。性能肯定比你这个好
你这个是 N*N
,那个是 2N
还可以排序。然后双指针啥的,不用维护额外空间。
let a = [
{ id: 1, name: 11 },
{ id: 2, name: 22 },
{ id: 3, name: 33 },
];
let b = [
{ id: 3, name: 33 },
{ id: 4, name: 33 },
];
let c = {},
d = [];
a.concat(b).forEach((item) => {
if (c[item.id]) {
d.push(item);
}
c[item.id] = true;
});
console.log(d);
13 回答13k 阅读
8 回答2.7k 阅读
2 回答5.2k 阅读✓ 已解决
7 回答2.1k 阅读
5 回答1.3k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
ps:提问不要用图片