栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取JavaScript数组中的所有唯一值(删除重复项)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取JavaScript数组中的所有唯一值(删除重复项)

使用 Javascript 1.6 / ECMAscript 5,
您可以通过

filter
以下方式使用Array
的本机方法来获取具有唯一值的数组:

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)即可工作。

它也适用于混合值类型的数组。

对于旧版浏览器(<ie9),它们不支持本机方法

filter
indexOf
您可以在MDN文档中找到关于filter和indexOf的解决方法。

如果要保留最后一次出现的值,请简单地替换

indexOf
lastIndexOf

使用ES6可以简化为:

// usage example:var myArray = ['a', 1, 'a', 2, '1'];var unique = myArray.filter((v, i, a) => a.indexOf(v) === i);// unique is ['a', 1, 2, '1']

ES6有一个本地对象

Set
来存储唯一值。要获得具有唯一值的数组,您现在可以执行以下操作:

var myArray = ['a', 1, 'a', 2, '1'];let unique = [...new Set(myArray)];// unique is ['a', 1, 2, '1']

构造函数

Set
采用可迭代对象(例如Array),并且散布运算符
...
将集合转换回Array。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号