var a = [1,2,[3,4, [5,6,7]]]
//es6封装好的方法
console.log('flat ', a.flat(Infinity))
//toString方法
console.log('toString ', a.toString().split(',').map(item => parseFloat(item)))
//JSON的stringify方法
console.log('stringify ', JSON.stringify(a).replace(/(\[|\])/g, '').split(',').map(item => parseFloat(item)))
//递归,手写封装
;(function() {
function mFlat() {
let result = [],
_this = this;
let fn = arr => {
for(let i = 0; i < arr.length; i++) {
let item = arr[i]
if(Array.isArray(item)) {
fn(item)
continue;
}
result.push(item)
}
}
fn(_this)
return result
}
//往数组原型中添加此递归方法
Array.prototype.mFlat = mFlat
})();
console.log('递归 ', a.mFlat())
javascript 数组扁平化的几种方式
最新推荐文章于 2022-10-16 22:34:55 发布