ES6提供了一些技巧来去重数据结构,这些技巧可以有效地提高程序的性能。
使用Set结构。Set结构不会存储重复的值,可以用来去重。它的使用方法是将要去重的数据作为参数传入Set结构,它会自动去重:
// 去重
let arr = [1, 2, 3, 4, 2, 1, 3];
let set = new Set(arr);
console.log(set); // Set {1, 2, 3, 4}
可以使用Array.from()方法来实现去重,它可以将类数组对象或可迭代对象转换为数组,再使用Set结构去重:
// 去重
let arr = [1, 2, 3, 4, 2, 1, 3];
let set = new Set(Array.from(arr));
console.log(set); // Set {1, 2, 3, 4}
还可以使用Array.prototype.filter()方法来实现去重,它接收一个函数作为参数,每次迭代时都会执行该函数,如果函数返回true,则将当前值保留:
// 去重
let arr = [1, 2, 3, 4, 2, 1, 3];
let set = arr.filter(function(item, index, array) {
return array.indexOf(item) === index;
});
console.log(set); // [1, 2, 3, 4]
使用ES6的Map结构也可以实现去重,Map结构中的键值对是唯一的,可以将要去重的数据作为Map结构中的键值对,再转换为数组:
// 去重
let arr = [1, 2, 3, 4, 2, 1, 3];
let map = new Map();
arr.forEach(item => {
map.set(item, item);
});
let set = Array.from(map.values());
console.log(set); // [1, 2, 3, 4]
ES6提供了多种技巧来去重数据结构,可以根据实际情况选择合适的技巧,以提高程序的性能。