有时候会碰到一些问题,尤其是面试的时候,让你实现一些已有的方法。现在我们用数组扁平化方法来试验一下吧
Array.prototype.myFlat = function (num) {
// 声明结果数组
const result = [];
// 通过this获取原数组
if (!Array.isArray(this)) {
return result;
}
this.forEach(item => {
if (Array.isArray(item)) {
// num为进行降维几次扁平化
num--
if (num < 0) {
return result.push(item)
}
// 若为数组,则继续扁平化
result.push(...item.myFlat(num))
} else {
// 如果不是数组,则直接放入结果数组
result.push(item)
}
})
return result;
}
const arr = [1, 2, [3, 4, [5, 6, [7, 8], 9]]]
console.log(arr.myFlat(4))
方法如上,你们也可以试试通过在原型上添加方法来实现数组的其他方法啊。