求兩個數組的差異

案例

一組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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章