拍平数组的四个方法
方案4 => 推荐
var arr = [1, 2, [3, 4, 5, [6, 7, 8], 9], 10, [11, 12]]
console.log(arr)
let arr1 = arr
.toString()
.split(",")
.map(val => {
return parseInt(val);
});
console.log(arr1);
方案1
// 案例 -- 拍平数组
let arr = [
[1, 2, 3],
[4, 5],
[6],
[7, 8, 9]
]
console.log(arr)
/*
方案1:
+ 准备一个新数组
+ 嵌套循环遍历原始数组
*/
let newArr = []
for(var i = 0; i < arr.length; i++) {
// console.log(arr[i]);
let item = arr[i]
for(var j = 0; j < item.length; j++) {
console.log(item[j]);
newArr.push(item[j])
}
}
console.log(newArr);
方案2
/*
方案2:
+ 把原始数组中的每一个小数组拼接起来
=> 注意:concat() 不会改变原始数组,返回值是拼接好的数组
*/
let newArr = []
for (var i = 0; i < arr.length; i++) {
newArr = newArr.concat(arr[i])
}
console.log(newArr);
方案3
/*
方案3:
+ 专门用来叠加的方法 => reduce
*/
let res = arr.reduce((prev, item) => {
// prev 就是上一次的结果 item 每一次的小数组
// 把小数组 拼接到 prev 身上
return prev.concat(item)
}, [])
console.log(res);