美文网首页
3.给数组添加一个去重的方法

3.给数组添加一个去重的方法

作者: jqClub | 来源:发表于2017-10-24 18:36 被阅读0次

1.双层循环

            var unique = function(arr) {
              var res = []
              var len = arr.length
              for(var i = 0; i < len; i++) {
                for(var j = 0; j < res.length; j++) {
                  if(arr[i] === res[j]) {
                    break
                  }
                }
                //  循环结束再push进去
                if(j === res.length) {
                  res.push(arr[i])
                }
              }
              log('unique', res)
              return res
            }

2.使用indexOf简化内层循环

var unique1 = function(arr) {
              var result = []
              var len = arr.length
              for(var i = 0; i < len; i++) {
                var a = arr[i]
                if(result.indexOf(a) == -1) {
                  result.push(a)
                }
              }
              log('unique1', result)
              return result
            }

3.排序后去重
// 先将旧数组排序,相同的就会排在一起,然后判断当前元素和下一个是否相同,不相同就push进去

var unique2 = function(arr) {
              var res = []
              var sortedAarray = arr.concat().sort()
              var len = sortedAarray.length
              for(var i = 0; i < len; i++) {
                if(sortedAarray[i] !== sortedAarray[i+1]) {
                  res.push(sortedAarray[i])
                }
              }
              log('unique2', res)
              return res
            }

// 4.使用ES5的filter方法,也可以先排序再去判断

var unique3 = function(arr) {
                var res = arr.filter(function(item, index, arr) {
                    return arr.indexOf(item) === index
                })
                log('unique3', res)
                return res
            }
            unique3(arr)

var unique3 = function(arr) {
                var res = arr.concat().sort().filter(function(item, index, arr) {
                    return item !== arr[index + 1]
                })
                log('unique3', res)
                return res
            }
            unique3(arr)

5.ES6 Set数据结构

var unique4 = function(arr) {
                var res = [...new Set(arr)]
                //var res = Array.from(new Set(arr))
                log('unique4', res)
                return res
            }
            unique4(arr)

相关文章

  • 3.给数组添加一个去重的方法

    1.双层循环 2.使用indexOf简化内层循环 3.排序后去重// 先将旧数组排序,相同的就会排在一起,然后判断...

  • JS数组去重

    数组去重的方法 1.Set() + Array.from() 2.双层循环 + splice 3.空数组添加 + ...

  • JS数组去重方式

    1.ES6去重 2.使用indexOf()方法 3.数组forEach方法 4.添加原型方法

  • 给数组添加原生去重方法

  • 3. js数组去重方法

    数组去重 删除数组中的重复项; 方法一:注意indexOf的兼容 方法二:修改原数组 方法二优化:

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • Set数据结构学习

    1.简单介绍 2.数组转Set 3.利用Set给数组去重 4.Set实例的属性和方法 4.1支持for...of ...

  • 数组去重

    1.利用ES6 Set去重(ES6中最常用) 2.它是最简单的数组去重方法(indexOf方法) 3.优化遍历数组...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

网友评论

      本文标题:3.给数组添加一个去重的方法

      本文链接:https://www.haomeiwen.com/subject/keuxpxtx.html