- 扁平化,顾名思义就是减少复杂性装饰,使其事物本身更简洁、简单,突出主题。
- 数组扁平化,对着上面意思套也知道了,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层的数组。
数组扁平化是指将多维数组变成一维或指定维数的数组
const arr = [1, [2, [3, [4, 5]]], 6];
console.log("数组:",arr);
const res1 = arr.flat(Infinity)
console.log("flat(Infinity):",res1);
const res11 = arr.flat(2)
console.log("flat(2):" ,res11);
const fn = (args) => {
const newArr = []
for(let i = 0; i < args.length; i ++) {
if (Array.isArray(args[i])) {
newArr.push(...fn(args[i]))
} else {
newArr.push(args[i])
}
}
return newArr
}
const res2 = fn(arr)
console.log("递归遍历: ",res2);
const flatten = (args) => {
return args.reduce((pre, cur) => {
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur)
}, [])
}
const res3 = flatten(arr)
console.log("reduce:", res3);
const res4 = JSON.parse("["+JSON.stringify(arr).replace(/\[|\]/g, '') + "]")
console.log("正则:", res4);