• 数组去重


    一、ES6最常用Set去重

    Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。

    function unique(arr) {
      return Array.from(new Set(arr))
    }
    let arr = [1, 1, 'true', 'true', true, true, 15, 15];
    console.log(unique(arr))            // [ 1, 'true', true, 15 ]
     
    let unique2 = arr => [...new Set(arr)]
    console.log(unique2(arr));        //  [ 1, 'true', true, 15 ]
     

    二、双重for循环

    外层循环元素,内层循环时比较值。

    function unique(arr) {
      for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
          if (arr[i] == arr[j]) {                    //第一个等同于第二个,splice方法删除第二个
            arr.splice(j, 1);
            j--;
          }
        }
      }
    return arr;
    }
    let arr = [1, 1, 'true', 'true', true, true, 15, 15];
    console.log(unique(arr)    // [ 1, 'true', true, 15 ]

    三、indexOf或includes去重

    当数组内没有该元素时,indexOf返回-1,则把它push进新数组。

    function unique(arr) {
      var array = [];
      for (var i = 0; i < arr.length; i++) {
        if (array .indexOf(arr[i]) === -1) {
          array .push(arr[i])
        }
      }
      return array;
    }
    includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。

    function unique(arr) {
      var array = [];
      for (var i = 0; i < arr.length; i++) {
        if (!array.includes( arr[i]) ) {
          array .push(arr[i])
        }
      }
      return array;
    }

    四、filter去重

    原始数组中元素的索引等于当前索引值时返回,否则返回当前元素

    function unique(arr) {
      var res = arr.filter(function(item, index, array) {
        return array.indexOf(item) === index
      })
      return res
    }
  • 相关阅读:
    APP上线审核注意事项
    xcode环境变量设置(转载)
    iOS 工程中 Other Linker Flags
    iOS 打开应用与系统功能的调用
    在oc中一些常用的宏定义总结
    WebViewJavascriptBridge的简单应用
    UITextField 对键盘一些常用属性 记录一下
    UITextInputMode类的使用
    数组和指针
    自定义ViewGroup实现瀑布流效果
  • 原文地址:https://www.cnblogs.com/heisetianshi/p/14657363.html
Copyright © 2020-2023  润新知