zoukankan      html  css  js  c++  java
  • 数组去重的几种方式

    第一种:双循环遍历是否存在当前值

        var arr = [1,1,'1',2,2,'2','c','c','d']
        function returnArr () {
          var newArr = [arr[0]]
          arr.forEach((item,index) => {
            var flg = true
            newArr.forEach((item2,index2) => {
              if (item  === item2) {
                flg = false
              }
            })
            // 当在新数组中没有当前值时进行插入
            if (flg) {
              newArr.push(item)
            }
          })
          return newArr
        }
        console.log(returnArr())

    输出结果:[1, "1", 2, "2", "c", "d"]

    这种写法虽然能实现需求,但是相对来说写法比较臃肿

    第二种: 拿到当前值去往后查找是否有相同的,如果有就去掉

        function deleteArray( arr ){
          for( var i = 0; i < arr.length; i++ ){
            for( var j = i+1; j < arr.length; j++ ){
              if( arr[i] === arr[j] ){
                arr.splice(j, 1);
                j--;
              }
            }
          }
          return arr;
        }
        console.log(deleteArray(arr))

    输出结果:[1, "1", 2, "2", "c", "d"]

    第三种:利用indexOf方法

        function uniq(){
          var arr2 = []
          for(var i = 0; i < arr.length; i++){
            if(arr2.indexOf(arr[i]) == -1){
              arr2.push(arr[i])
            }
          }
          return arr2
        }
        console.log(uniq())

    输出结果:[1, "1", 2, "2", "c", "d"]

    第四种: es6一行数组去重

    Array.from(new Set(arr))

    输出结果:[1, "1", 2, "2", "c", "d"]

  • 相关阅读:
    sass学习笔记1
    javascript 数组的深度复制
    div+css定位position详解
    滚动加载图片(懒加载)实现原理
    移动端布局经验
    js 扁平化输出数组
    axiso基本使用及python接收处理
    JSP内置对象
    JSP基本语法
    tomcat环境搭建
  • 原文地址:https://www.cnblogs.com/qiuchuanji/p/12084017.html
Copyright © 2011-2022 走看看