欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JS数组去重方法记录

发布时间:2024/7/23 javascript 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JS数组去重方法记录 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

js数组去重方法

1.遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

代码如下(示 例):

function getArray(ar) {var result = [];for (var i = 0, j = ar.length; i < j; i++) {if (result.indexOf(ar[i]) === -1) {result.push(ar[i]);}}return result; }

2.遍历数组,利用object对象保存数组值,判断数组值是否已经保存在object中,未保存则push到新数组并用object[arrayItem]=1的方式记录保存

代码如下(示 例):

function getArray(ar) {var tmp = {},result = [];for (var i = 0, j = ar.length; i < j; i++) {if (!tmp[ar[i]]) {tmp[ar[i]] = 1;result.push(ar[i]);}}return result; }

3.数组下标判断法, 遍历数组,利用indexOf判断元素的值是否与当前索引相等,如相等则加入

代码如下(示 例):

function getArray(ar) {var result = [];ar.forEach(function(e, i, ar) {if (ar.indexOf(e) === i) {result.push(e);}});return result; }

4.ES6-Set

代码如下(示 例):

[...new Set(['1',2,3,4,1,2,12,2])]

5.利用键值对-对象不能相同名来去重

代码如下(示 例):

let a = [1,2,13,1,2,1,'1','1'];const getArray = arr => {var obj ={}arr.forEach(value => {obj[value]=0;})return Object.keys(obj); } console.log(getArray(a)); //有缺陷,当数组中存放1和‘1’会默认去掉其中一个,从而达不到想要的效果

6.使用reduce去重

代码如下(示 例):

let obj = {}; arr = arr.reduce(function(item, next) {obj[next.key] ? '' : obj[next.key] = true && item.push(next);return item; }, []);

7.使用filter去重

代码如下(示 例):

getArray = (arr)=>{return arr.filter((e,i,arr)=>{return arr.indexOf(e) == i;}) }

总结

以上是生活随笔为你收集整理的JS数组去重方法记录的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。