600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 数组--二维数组转为一维数组

数组--二维数组转为一维数组

时间:2022-06-11 14:28:30

相关推荐

数组--二维数组转为一维数组

a.二维数组转为一维数组:

i.reduce() 方法

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的

语法:array.reduce(function(total,currentValuue,currentIndex,arr),initiaValue)

let arr = [[1, 4, 5, 6],[8, 4, 7, 6],[1, 5, 10, 47]];let arr1 = arr.reduce((total, currentValue) => {return total.concat(currentValue);});console.log(arr1);

ii.map()

map()方法定义在JavaScript的Array中,返回一个新的数组,新返回数组中的每个元素为原始数组的每一个元素分别调用map中的回调函数处理后的值

注意:

不会对空数组进行检测不会改变原始数组(返回新数组)不会为数组中缺少的元素调用回调函数除数组对象外,map()可由具有length属性且具有已按数字编制索引名的任何对象使用(如字符串对象)

语法:

array.map(function(currentValue, index, arr), thisIndex)

currentValue必须。当前元素的的值。index可选。当前元素的索引。arr可选。当前元素属于的数组对象。thisValue可选。对象作为该执行回调时使用,传递给函数,用作"this"的值

let arr = [[1, 4, 5, 6],[8, 4, 7, 6],[1, 5, 10, 47]];function flatten(arr) {/*** ...arr ==> 等价于 [1, 4, 5, 6] [8, 4, 7, 6] [1, 5, 10, 47]* currentValue => 等价于 上面的一个个一维数组*/return [].concat(...arr.map(currentValue => Array.isArray(currentValue) ? flatten(currentValue) : currentValue))}var arr2 = flatten(arr);console.log(arr2);

iii.apply()

Function.apply(obj,args)方法能接收两个参数

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

可以将一个数组默认的转换为一个参数列表:[param1,param2,param3] 转换为 param1,param2,param3

let arr = [[1, 4, 5, 6],[8, 4, 7, 6],[1, 5, 10, 47]];var arr2 = [].concat.apply([], arr);console.log(arr2);

iv.split()

通过将数组转变成字符串,利用str.split(',')实现

var arr = [[1, 4, 5, 6],[8, 4, 7, 6],[1, 5, 10, 47]];var arr1 = (arr + '').split(',');// var arr1 = arr.toString().split(',');// var arr1 = arr.join().split(',');console.log(arr1);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。