求两个数组的差异

案例

一组CheckBox,每次选中或者取消一个,在onChange中获取到的都是数组值,如何确定变化的那个值呢?体验地址

题目

如上案例,换一种说法。求解任意两个数组的存在差异的值。注意,有可能第一个数组比第二个数组的值多。也有可能第二个数组的值更多。

思路一

根据每个值在数组中首次出现和最后一次出现的索引值是否相等进行判断。

let arr0 = [1,2,4,5], arr1 = [1,2,3,4,5];
let diff = arr0.concat(arr1)
.filter((value, index, arr) => {
	return arr.indexOf(value) === arr.lastIndexOf(value)
});
console.log(diff); // [3]

思路二

借助于lodashxor方法

import _ from 'lodash';
let arr0 = [1,2,4,5], arr1 = [1,2,3,4,5];
let diff = _.xor(arr0, arr1);
console.log(diff); // [3]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章