javascript数组去重方法汇总

前端开发 作者: 2024-08-21 05:15:01
前言 数组去重已经是一个老生常谈的问题了,依然经久不息,经过岁月的变迁es标准的升级迭代,似乎有越来越多的方法和方式供我们使用,那么那种方式才是最优的?那种才是最简洁的?这个我们一起来探讨。 省略:传

 前言


方法一:es5使用filter


var array = [2,"2",2,"2"];
// es5 使用filter
function unique(array) {
    var obj = {};
    return array.filter( (item,index) {
        var fullItem = (typeof item + item);
        return obj.hasOwnProperty(fullItem) ? false : (obj[fullItem] = true);
    });
}
console.log(unique(array)); [2,"2"]

方法二:使用es6 Set


es6 使用Set特性(Set元素只会出现一次,即元素是唯一的)
let unique = (array) => [...new Set(array)]; (...)扩展语句,简单来说就是把数组参数转换为多个对象参数
console.log(unique(array)); 

方法三:使用es6 Map


es6 Map 本质使用的还是Array.prototype.filter()
 unique(array) {
let m = new Map();
return array.filter((item) => !m.has(item) && m.set(item,1));
}
console.log(unique(array));

总结


原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65915.html