数组去重
题目
对数组 arr(['a','b','d','d','c','d','d'])进行去重,至少采用三种不同的方式。
代码
js
const arr = ["a", "b", "d", "d", "c", "d", "d"];
第一种:
遍历arr
, 若arr1
不存在该元素则将元素追加
js
const arr1 = [];
for (let i = 0; i < arr.length; i++) {
if (!arr1.includes(arr[i])) {
arr1.push(arr[i]);
}
}
alert(arr1);
测试
第二种:
创建元素唯一的集合, 将其解构至arr1
js
const arr1 = [...new Set(arr)];
alert(arr1);
测试
第三种
利用对象属性唯一的特性, 对象不存在该属性时追加并设置属性且值为true
js
const obj = {};
const arr1 = arr.filter((item) =>
obj.hasOwnProperty(item) ? false : (obj[item] = true)
);
alert(arr1);
测试
第四种
寻找元素的索引, 若filter
正在处理的元素位置等于该元素索引时进行追加
js
const arr1 = arr.filter((item, position) => arr.indexOf(item) == position);
alert(arr1);
测试