es6去除重复项_ES5ES6中Array对象去除重复项的方法总结
在ES5中,我们可以通过遍历数组并使用indexOf方法来去除重复项。具体步骤如下:
1.创建一个新数组来存储去除重复项后的结果。
2. 遍历原数组,对于每个元素,使用indexOf方法来判断该元素是否已经在新数组中存在。
3.如果不存在,则将该元素添加到新数组中。
4.返回新数组作为结果。
这种方法的时间复杂度为O(n^2),因为在每次遍历时,都要使用indexOf方法来判断是否重复,而indexOf方法的时间复杂度为O(n)。
在ES6中,我们可以使用新的语法和方法来简化去除重复项的过程。具体方法如下:
1. 使用Set对象。Set对象是ES6中新增的一种数据结构,它类似于数组,但是不允许有重复项。
2. 将原数组转换为Set对象,这样就会自动去除重复项。
indexof能用于数组吗
3. 将Set对象转换为数组,得到去除重复项后的结果。
这种方法的时间复杂度为O(n),因为Set对象的添加和查操作的平均时间复杂度为O(1)。
下面是一个具体的示例代码,展示了如何使用ES5和ES6中的方法去除数组中的重复项:
//ES5
function removeDuplicatesES5(arr)
var result = [];
for (var i = 0; i < arr.length; i++)
if (result.indexOf(arr[i]) === -1)
result.push(arr[i]);
}
}
return result;
//ES6
function removeDuplicatesES6(arr)
return Array.from(new Set(arr));
var arr = [1, 2, 3, 2, 1, 4, 5, 4, 6];
console.log(removeDuplicatesES5(arr)); // [1, 2, 3, 4, 5, 6]
console.log(removeDuplicatesES6(arr)); // [1, 2, 3, 4, 5, 6]
通过比较这两种方法,我们可以看到ES6中的方法更加简洁和高效。同时,ES6中的Set对象还提供了其他一些方法,如size属性可以获取Set对象的长度,has方法可以判断一些元素是否存在等。这些方法可以帮助我们更方便地操作数组。