整理下初学时做过的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 ]