Skip to content

数组去重

题目

对数组 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);

测试

参考资料