javascript数组拍动方法概述
开发过程中有一些常见的问题,比如将2D阵列展平成1D阵列,或者将3D阵列展平成1D阵列。遇到这些问题总会重新考虑,不如提炼总结一下。
下面,笔者将为大家展示两种将多维数组展平为一维数组的方法,可以看作是抛砖引玉,大家都有更好的方法在留言区发布。
第一种是第一种方法,递归处理,代码如下:
var arr=[1,2,3,[3,3,3,[5,4,5,6,6,7,8]],[333,4444]];Function product() {//1,创建一个空数组,var Newar=[];///2,并返回一个函数,函数参数为要展平的数组返回函数flat (arr) {//3,循环数组,判断每一项,不输则插入newarr。//如果是数组,递归调用faltten,将结果与(arr的var t){ If(!array . isarray(t)){ new warr . push(t);} else { Newar . concat(flat(t))} } return Newar } } var flat=product();console.log(扁平化(arr(arr))的执行结果是:
上述方法相当令人满意,代码详见注释。下面的方法应用了javascript语言的一些新特性,代码如下:
var arr=[1,2,3,[3,3,3,[5,4,5,6,6,7,8]],[333,4444]];函数扁平化(arr){ return arr.reduce(函数(pre,cur){ if(!Array.isArray(cur)){ return [.pre,cur];} else {return [.预先,flat (cur)]},[])} console.log (flat (arr))上面的代码使用了ES6的一个新特性来扩展云算法“.”, "[.abc,fff]”,相当于ABC。Reduce是javascript语言中的一种数组方法。
当数组调用recduce方法时,它可以传递两个参数,第一个参数是回调函数,第二个参数是初始值。回调函数中需要传递两个参数,第一个参数是每个执行函数的返回值,第二个参数是当前索引对应的数组的值。reduce的第二个参数可以省略。如果省略,回调函数第一次调用的参数是数组第一项和第二项的值。如果不省略,回调函数的第一个参数就是这个初始值。在上例中,reduce的第二个参数设置了一个空数组。
reduce文档的地址是https://developer . Mozilla . org/zh-cn/docs/web/JavaScript/reference/global _ objects/array/reduce
与第一种相比,更容易理解,第二种的难点在于对reduce函数的应用和理解。
版权声明:javascript数组拍动方法概述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。