Js数组去重的多种方法

简介: 学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~如果大家喜欢,可以点赞或留言💕~~~~,谢谢大家⭐️⭐️⭐️~~~
学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~\
如果大家喜欢,可以点赞或留言💕 ~~,谢谢大家⭐️⭐️⭐️~

文章首发于https://juejin.cn/post/7103362671730229284

1.push + indexOf

语法:string.indexOf(searchvalue,start)
参数
1653560771(1).png
定义用法:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。

代码如下:

var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
    //创建一个新数组,利用indexOf去重
    var newArr = [];
    for(var i = 0; i < array.length; i++){
        //如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面
        if(newArr.indexOf(array[i]) == -1){
            newArr.push(array[i]);
        }
    }
    return newArr;
}
console.log(newArr(arr))

2.filter + indexOf

filter 过滤 配合 indexOf 查找元素
注意:

  • filter() 方法用于把Array中的某些元素过滤掉,然后返回剩下的未被过滤掉的元素
  • filter() 不会对空数组进行检测;
  • filter() 不会改变原始数组。

详细filter方法讲解可以去查阅其他人写的文章讲解的很详细

var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
    return array.filter((item, index) => { 
        return array.indexOf(item) === index;
    }) 
}
console.log(newArr(arr))

3.object

利用对象属性名不能重复这一特点。如果对象中不存在,就可以给 push 进去,代码如下:

var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
    let newArr = [];
    let obj = {};
    for(let i = 0;i<array.length;i++){
        if (!obj[array[i]]) {
              newArr.push(array[i]);
              obj[array[i]] = 1;
        } else {
              obj[array[i]] ++;
        }
    };
  return newArr;
}
console.log(newArr(arr))

4.splice

利用 splice 进行切割,代码如下:

var arr = [1,1,2,9,6,9,6,3,1,4,5];
function newArr(arr){
    for(let i = 0; i<arr.length; i++){
        for(let j = i + 1; j<arr.length; j++){
          if (arr[i] === arr[j]) {
            arr.splice(j,1);
            j--
          }
        };
    }
    return arr;
}
console.log(newArr(arr))

5.ES6中利用Set去重

此方法是所有去重方法中代码最少的方法,代码如下:

var arr = [1,1,2,9,6,9,6,3,1,4,5];
function newArr(arr){
    //方法一  Array.from()解析类数组为数组
    return Array.from(new Set(arr));
    //方法二  es6的...解构
    return [...new Set(arr) ];
}
console.log(newArr(arr))
//再说一个字符串去重
let str = "112223453";
let newstr = [...new Set(str)].join("");     // 12345
谢谢大家阅读⭐️⭐️⭐️,如果喜欢,可以点赞或留言哟💕
目录
相关文章
|
1天前
|
前端开发 JavaScript
前端 JS 经典:数组去重万能方法
前端 JS 经典:数组去重万能方法
6 0
|
1天前
|
前端开发 JavaScript 流计算
前端 js 经典:字符串超全方法总结
前端 js 经典:字符串超全方法总结
9 0
|
1天前
|
前端开发 JavaScript
前端 js 经典:数组常用方法总结
前端 js 经典:数组常用方法总结
10 0
|
2天前
|
前端开发 JavaScript 开发者
JavaScript中的异步编程方法总结
在JavaScript开发中,处理异步操作是非常常见的情况。本文将总结JavaScript中常用的异步编程方法,包括Callback、Promise、Async/Await等,分析其优缺点,并提供使用建议。
|
3天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
7 0
|
4天前
|
前端开发 JavaScript
前端 JS 经典:Math 常用方法汇总
前端 JS 经典:Math 常用方法汇总
6 0
|
4天前
|
前端开发 JavaScript
前端 js 经典:Object 常用原生方法
前端 js 经典:Object 常用原生方法
10 2
|
4天前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
10 1
|
4天前
|
JavaScript 前端开发
JS中正则方法的使用 - 蓝易云
以上就是JavaScript中正则方法的基本使用。这些方法可以用于执行复杂的字符串处理和验证任务。
24 1
|
JavaScript 前端开发 数据安全/隐私保护