如何快速地对比出这两个数组中不是同时存在的元素。
目测答案是:"574a97fe2b51e90056e423c0"
var arr1 = [
"574417bc79df540065d92df7",
"574424e5df0eea0063adefc6",
"57442329a3413100625f194f",
"5744242bc4c971005d5ff04e",
"574a841d1532bc006068c6c9",
"574a97fe2b51e90056e423c0"
];
var arr2 = [
"574417bc79df540065d92df7",
"57442329a3413100625f194f",
"5744242bc4c971005d5ff04e",
"574424e5df0eea0063adefc6",
"574a841d1532bc006068c6c9"
];
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
比较初级的哈哈,
空间足够的话,做个hash表映射一下喽:
也就循环了吧?
其实题主的问题应该是问如何找出两个数组之间的差集。
如果是生产环境下,我会引入
lodash这个工具库(如果是java的话引入guava库),然后用以下代码实现该需求:var arr1 = [1,2,3];
var arr2 = [1,4,5];
或
看了一下
lodash里面difference的实现,核心内容大概就是arr1正向遍历,arr2逆向遍历,我试着写了一下:当然,这段代码还有很多可以优化的地方,例如剔除arr2中已经相等的元素,这里就不写了。
异或操作,对应的位相同为0,不同为1?
采用es6的Set结构