首页 > 编程语言 > 详细

数组去重的几种方式

时间:2019-12-23 16:51:27      阅读:82      评论:0      收藏:0      [点我收藏+]

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

    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"]

数组去重的几种方式

原文:https://www.cnblogs.com/qiuchuanji/p/12084017.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!