首页前端开发JavaScriptjavascript数组去重怎么做

javascript数组去重怎么做

时间2024-01-30 07:22:03发布访客分类JavaScript浏览875
导读:收集整理的这篇文章主要介绍了javascript数组去重怎么做,觉得挺不错的,现在分享给大家,也给大家做个参考。方法:1、利用“[...new Set(arr ]”语句;2、利用“Array.From(new Set(arr ”语句;3、...
收集整理的这篇文章主要介绍了javascript数组去重怎么做,觉得挺不错的,现在分享给大家,也给大家做个参考。

方法:1、利用“[...new Set(arr)]”语句;2、利用“Array.From(new Set(arr))”语句;3、利用filter和indexOf函数;4、利用双重for循环,检查值是否重复,如果有重复就使用push()删除。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

方法1:[…new Set(arr)]

const arr = [1, 2, 3, 2, 3];
    [...new Set(arr)];
     // [1, 2, 3]

方法2:Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];
    Array.from(new Set(arr));
     // [1, 2, 3]

由于 Set 中的元素是唯一的,无论是原始值或者是对象引用,所以可以通过将数组转换成 Set 对象来实现去重

Array.from方法可以将 Set 对象转换成数组。

方法3:利用filter+ indexOf

function unique(arr) {
  return arr.filter(function(ITem, index, arr) {
        //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素    return arr.indexOf(item, 0) === index;
  }
    );
}
VAR arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{
}
,{
}
    ];
console.LOG(unique(arr))//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {
…}
, {
…}
    ]

方法4:双重 for 循环

最容易理解的方法,外层循环遍历元素,内层循环检查是否重复

当有重复值的时候,可以使用 push(),也可以使用 splice()

function distinct(a, b) {
        let arr = a.concat(b);
        for (let i=0, len=arr.length;
     ilen;
 i++) {
            for (let j=i+1;
     jlen;
 j++) {
            if (arr[i] == arr[j]) {
                    arr.splice(j, 1);
                    // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一                len--;
                    j--;
            }
        }
    }
    return arr}
    

但这种方法占用的内存较高,效率也是最低的

方法5:for...of + includes()

双重for循环的升级版,外层用 for...of 语句替换 for 循环,把内层循环改为 includes()

先创建一个空数组,当 includes() 返回 false 的时候,就将该元素 push 到空数组中

类似的,还可以用 indexOf() 来替代 includes()

function distinct(a, b) {
    let arr = a.concat(b)    let result = []    for (let i of arr) {
            !result.includes(i) &
    &
 result.push(i)    }
    return result}
    

【推荐学习:javascript高级教程】

以上就是javascript数组去重怎么做的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

javascript

若转载请注明出处: javascript数组去重怎么做
本文地址: https://pptw.com/jishu/592214.html
怎么操作 ASP.NET Web API ? asp.net MVC 网站图片怎么实现防盗链?

游客 回复需填写必要信息