JavaScript常用数组操作有哪些

  介绍

这篇文章将为大家详细讲解有关JavaScript常用数组操作有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在日常的开发中离不开前端对数据的处理,在这里整理下ES6/ES7/ES8…新的数组api。

扁平化n维数组

Array.flat ()——ES10

方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回.Array.flat (n)是扁平数组的api, n表示维度,n值为无穷大时维度为无限大

[1,[2、3]].flat (2)//(1、2、3)   [1,2,3,4,5]].flat (3)//[1、2、3、4、5)   [1,2,3,4,5]]].toString ()//& # 39; 1, 2, 3, 4, 5 & # 39;   [1,2,3,4,5],[…]]].flat (∞)

平()方法会移除数组中的空项:

var arr4=(1、2、4、5);   arr4.flat ();//(1、2、4、5)

替换方案:实质是利用递归和数组合并方法concat实现扁平

函数平(arr) {   而(arr.some(项=祝辞Array.isArray(项目))){   arr=[] .concat arr (…);   }   返回arr;   }   平([1,2,3]])//(1、2、3)   平([1,2,3,(4、5)))//[1、2、3、4、5)

Array.from()方法从一个类似数组或可迭代对象中创建一个新的数组实例。

从与组使用,数组去重;设置是ES6新出来的一种一种定义不重复数组的数据类型,Array.from是将类数组转化为数组。 Array.from(新设置((1、2、3、3、4、4]))//(1、2、3、4)   […新的([1、2、3、3、4、4])]//(1、2、3、4)

替换方案:

Array.prototype。不同=function () {   var arr=,   结果=[],   我,   j,   len=arr.length;   (我=0;我& lt;兰;我+ +){   (j=i + 1;j & lt;兰;j + +) {   如果(arr[我]===arr [j]) {   j=+ + i;   }   }   result.push (arr[我]);   }   返回结果;   }   (1、2、3、3、4、4].distinct ();//(1、2、3、4)

数组去重合并

函数结合(){   让arr=[] .concat。应用([]参数);//没有去重复的新数组   返回Array.from(新设置(arr));   }   var m=[1、2、2], n=(2、3、3);   console.log(结合(m, n));
排序Array.sort ()
(1、2、3、4)。排序((a, b)=比;a - b);//(1、2、3、4),默认是升序   (1、2、3、4)。排序((a, b)=比;b - a);//[4、3、2、1]降序

替换方案:升序

Array.prototype。bubleSort=function () {   让arr=,   len=arr.length;   (让外=兰;外祝辞=2;外——){   (让内心=0;内& lt;=外- 1;内部+ +){   如果(arr(内部)的在加勒比海盗(内部+ 1)){//升序   (arr(内部),arr[内+ 1]]=[arr(内部+ 1),arr[内部]];//控制台。日志([arr(内部),arr[内+ 1]]);   }   }   }   返回arr;   }   (1、2、3、4).bubleSort ();//(1、2、3、4)

求数组中最大值Math.max ()

返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回南。

Math.max (…[1、2、3、4])//4   Math.max.apply (, (1、2、3、4))//4   (1、2、3、4)。减少((上一页,坏蛋,curIndex arr)=比;{   返回Math.max(上一页,cur);   },0)//4
Math.max()是数学对象内置的方法,参数是字符串;
减少是ES5的数组api,参数有函数和默认初始值;
函数有四个参数,pre(上一次的返回值),坏蛋(当前值),curIndex(当前值索引),arr(当前数组)

求和减少

(1、2、3、4)。减少(函数(上一页,cur) {   返回上一页+坏蛋;   },0)

替换方案:求和,利用截切取改变数组,再利用递归求和

函数之和(arr) {   var len=arr.length;   如果(len==0) {   返回0;   }else if (len==1) {   返回arr [0];   其他}{   返回arr[0] +总和(arr.slice (1));   }   }   sum ([1、2、3、4]);

合并concat

concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

(1、2、3、4).concat ((5、6))//[1、2、3、4、5、6)   […(1、2、3、4),…(4、5)]//[1、2、3、4、5、6)//相当于vegetables.push(& # 39;芹菜# 39;,& # 39;甜菜# 39;);   Array.prototype.push。应用([& # 39;欧洲防风草# 39;& # 39;马铃薯# 39;],[& # 39;芹菜# 39;& # 39;甜菜# 39;]);   console.log(蔬菜);

JavaScript常用数组操作有哪些