介绍
这篇文章将为大家详细讲解有关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)//4Math.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常用数组操作有哪些