案例
一組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]
思路二
藉助於lodash
的xor
方法
import _ from 'lodash';
let arr0 = [1,2,4,5], arr1 = [1,2,3,4,5];
let diff = _.xor(arr0, arr1);
console.log(diff); // [3]