js数组去重,去除相同值
JavaScript数组去重是日常开发中经常用到的一项技能。
本文总结了常见的js去重方法。如果需要兼容IE,可以使用babel编译生成适合IE的代码。

ES5 的实现
JavaScript 1.6 / ECMAScript 5 您可以使用本机方法过滤器来实现字段重复数据删除。
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']
原生过滤器方法将循环遍历数组并将回调参数传递给 onlyUnique 函数。
onlyUnique 检查回调值是否第一次发生。如果不是,则不会生成数组。
此方法不需要任何额外的库,例如jQuery或prototype.js。
此方法也适用于混合类型的数组。
对于不支持filter或indexOf方法的旧浏览器,我们可能会考虑放弃。
开个玩笑,你可以查看MDN文档找到filter和indexOf兼容的解决方案。
ES6
ES6可以使用Set来实现字段去重,使得代码比ES5更加简单。
var myArray = ['a', 1, 'a', 2, '1'];
let unique = [...new Set(myArray)];
// unique is ['a', 1, 2, '1']
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:js 引用传递和值传递 下一篇:js 获取 DOM 元素相对于浏览器窗口的位置
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。