美文网首页
数组操作

数组操作

作者: JarvanZ | 来源:发表于2018-07-11 11:16 被阅读0次

数组去重

利用对象的属性不能相同的特点进行去重
Array.prototype.distinct = function (){
  var [arr, i, obj, result, len] = [this, null, {}, [], arr.length];
  for(i=0; i<len; i++) {
    if(!obj[arr[i]]) {
      obj[arr[i]] = 1;
      result.push(arr[i]);
    }  
  }
  return result;
}
数组递归去重

先排序,然后从最后开始比较,遇到相同,则删除

Array.prototype.distinct = function (){
  var arr = this,
  len = arr.length;
  arr.sort(function(a,b){  //对数组进行排序才能方便比较
    return a - b;
   })
  function loop(index){
    if(index >= 1){
      if(arr[index] === arr[index-1]){
       arr.splice(index,1);
      }
      loop(index - 1); //递归loop函数进行去重
    }
   }
   loop(len-1);
   return arr;
};

利用indexOf以及forEach

Array.prototype.distinct = function (){
  var arr = this,
  result = [],
  len = arr.length;
  arr.forEach(function(v, i ,arr){  //这里利用map,filter方法也可以实现
    var bool = arr.indexOf(v,i+1);  //从传入参数的下一个索引值开始寻找是否存在重复
    if(bool === -1){
      result.push(v);
    }
  })
  return result;
};
利用ES6的set

Set数据结构,其成员的值都是唯一的

  • 利用Array.from将Set结构转化成数组
Array.from(new Set(array))
  • 拓展运算符(...)内部使用for...of循环
[...new Set(array)]

相关文章

  • 数组

    数组定义: 元素类型 数组操作 Range 数组的批量操作 遍历

  • 迟到的Swift入门 - 数组操作

    Swift数组操作 1. 数组的日常操作 1.0 声明数组 初始化空数组 初始化默认值的数组 2. 数组基本操作 ...

  • 2. Numpy使用

    numpy的基本操作 生成数组 数组的基本操作 数组的运算 数组间的运算

  • 数组和对象的操作

    数组操作方法 数组中splice的操作(改变的是原数组,返回结果是分割的数组) 数组中slice的操作(不改变原数...

  • Matrix01-03:ndarray数组的操作

    ndarray数组的操作 数组数据转换数组形状变换数组数据选择与操作数组计算处理数组算术运算 一、数组数据转换 注...

  • js基础之数组方法

    数组简单操作 数组合并 数组排序

  • 基本dom操作,数组操作

    dom操作 数组操作

  • java笔记5

    数组的定义 数组的内存分配及特点 数组操作常见问题 数据常见操作 数组中的数组 @Test public void...

  • 数组类常用操作方法

    一、数组 二、不可变数组(NSArray) 三、不可变数组的操作 四、可变数组(NSMutableArray)的操作

  • JavaScript 数组方法整理大全

    一、常用的数组方法★ 直接操作影响原数组的方法: ★ 直接操作不影响原数组的方法: ★ 直接操作有可能影响到原数组...

网友评论

      本文标题:数组操作

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