1. 犀牛前端部落首页
  2. JavaScript百科

js数组去重,去除相同的值

JavaScript数组去重,是日常开发中经常使用到的技能点。

本文总结常见的js去重方法,如果需要兼容IE,可以使用babel编译生成适配IE的代码。

js数组去重,去除相同的值

ES5实现

JavaScript 1.6 / ECMAScript 5  你可以使用原生的方法filter来实现数组去重。

function onlyUnique(value, index, self) { 
    return self.indexOf(value) === index;
}

// usage example:
var a = ['a', 1, 'a', 2, '1'];
var unique = a.filter( onlyUnique ); // returns ['a', 1, 2, '1']

原生filter方法将会循环遍历数组,并将回调参数传递给onlyUnique函数。

onlyUnique将会检查回调的值是否第一次出现,如果不是,将不会生成到数组中。

此方法不需要任何额外的库,例如jQuery或prototype.js。

该方法也适用于混合类型数组。

对于不支持filter或indexOf方法的旧浏览器,我们可以考虑放弃

开玩笑,大家可以参考一下MDN文档,找到关于filterindexOf兼容解决方案。

ES6

ES6可以使用Set来实现数组的去重,相比于ES5代码将会变得更加简单。

var myArray = ['a', 1, 'a', 2, '1'];

let unique = [...new Set(myArray)]; 

// unique is ['a', 1, 2, '1']

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/3011.html

发表评论

登录后才能评论