整理下初学时做过的js基础编程题目和大家分享以下,如果大家觉得有用,别忘了点一下赞哦
数组扁平化
使用递归的形式实现数组的扁平化
let a = [1,[2,[3,4,5]]];
方法一:创建新的堆内存
function flat(arr){
let res = []
const flatFn = (arr)=> arr.forEach((val)=>{
Array.isArray(val) ? flatFn(val):res.push(val)
})
flatFn(arr)
return res
}
方法二:
function flat(arr){
return [].concat(...arr.map(val=>Array.isArray(val)?flat(val):val))
}
这里扩展下用
- eval 方法 实现数组的扁平化
console.log(eval(`[${[1,[2,[3,4,5]],7,8,9] + ''}]`))//[ 1, 2, 3, 4, 5, 7, 8, 9 ]
- ES6 Array.prototype.flat(参数1)
参数1:展平的层数,设置Infinity可实现扁平化,默认为1
let arr =[1,[2,[3,4,5]],7,8,9]
//展平一层
console.log(arr.flat())
//[ 1, 2, [ 3, 4, 5 ], 7, 8, 9 ]
//展平两层
console.log(arr.flat(2))
//[1, 2, 3, 4,5, 7, 8, 9]
扁平化
let arr =[1,[2,[3,4,5]],7,8,9]
console.log(arr.flat(Infinity))//[1, 2, 3, 4,5, 7, 8, 9]
console.log(arr)//[ 1, [ 2, [ 3, 4, 5 ] ], 7, 8, 9 ]
本文介绍了两种JavaScript实现数组扁平化的递归方法,并通过`eval`函数和`Array.prototype.flat()`方法进行演示。深入探讨了ES6中`Array.prototype.flat()`方法的使用,包括其参数的意义和不同层级的扁平化效果。
616

被折叠的 条评论
为什么被折叠?



