JavaScript:数组去重了解一下

数组去重方法有很多种,具体多少种没去统计,有简单的也有复杂的,在这我这举例一下比较常用的几种数组去重

  • indexOf
    //indexOf 判断一个数组里面是否存在某个值,如果存在返回所在的下标,如果不存在返回-1
    const arr = ['小明', 1, 2, 4, 1, '小美', '小明']
    const arr2 = []
    for (let index = 0; index < arr.length; index++) {
      const element = arr[index];
      if (arr2.indexOf(element) === -1) {
        arr2.push(element)
      }
    }
    console.log(arr2); //["小明", 1, 2, 4, "小美"]
  • ES6新增 Set方法
    //Set 返回的是一个类数组,需要转一下
    const arr = ['小明', 1, 2, 4, 1, '小美', '小明']
    const arr2 = Array.from(new Set(arr))
    const arr3 = [...new Set(arr)] //效果和Array.from(new Set(arr)) 一样
    console.log(arr2, arr3); //["小明", 1, 2, 4, "小美"]
  • includes
    //includes 判断数组是否存在某个值,如果存在返回true,不存在返回false
    const arr = ['小明', 1, 2, 4, 1, '小美', '小明']
    const arr2 = []
    for (let index = 0; index < arr.length; index++) {
      const element = arr[index];
      if (!arr2.includes(element)) {
        arr2.push(element)
      }
    }
    console.log(arr2);

使用sort、filter以及一些其他复杂的办法皆可以实现去重(但是不建议使用)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容