假如也下两个数组进行比较。
var arr = [{ id: 1, name: 'zs', age: 19 }, { id: 2, name: 'zs', age: 19 }, { id: 3, name: 'zs', age: 19 }, { id: 4, name: 'zs', age: 19 }, { id: 5, name: 'zs', age: 19 }, { id: 6, name: 'zs', age: 19 }, { id: 7, name: 'zs', age: 19 }, { id: 8, name: 'zs', age: 19 }, { id: 9, name: 'zs', age: 19 }, { id: 10, name: 'zs', age: 19 }]
var arr22 = [{ id: 1, name: 'zs', age: 19 }, { id: 2, name: 'zs', age: 19 }, { id: 3, name: 'zs', age: 19 }, { id: 4, name: 'zs', age: 19 }, { id: 5, name: 'zs', age: 19 }, { id: 6, name: 'zs', age: 19 }, { id: 7, name: 'zs', age: 19 }, { id: 8, name: 'zs', age: 19 }, { id: 9, name: 'zs', age: 19 }, { id: 10, name: 'zs', age: 19 }, { id: 11, name: 'zs', age: 19 }, { id: 12, name: 'zs', age: 19 }, { id: 13, name: 'zs', age: 19 }, { id: 14, name: 'zs', age: 19 }, { id: 15, name: 'zs', age: 19 }, { id: 16, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }, { id: 1, name: 'zs', age: 19 }]
我的第一反应是,两个for循化,或者是map之类的。但是两个循化的次数就比较多了,可以进行优化。
function compare(arr1, arr2) {
var map = new Map()
//用map保存较小数组中id
arr1.map((item) => map.set(item.id, 'yes'))
//然后大的数据就只用循化一次了
arr2.map((item) => {
if (map.get(item.id)) {
item.is = 'true'
}
})
return arr2;
}