有如下数组
const data = ['a', ['b', 'c'], 'd', 'e', 'f', ['g', 'h', 'i', ['j', 'k', 'h']]];
把它变为一维数组,把能想到的方法总结如下
方法一
data.flat(Infinity)
方法二
使用Generator
function *myFlat(arr) {
if (Array.isArray(arr)) {
for (let item of arr) {
yield* myFlat(item);
}
} else {
yield arr;
}
}
console.log([...myFlat(data)]);