记录生成器函数的一个应用

149 阅读1分钟

多维数组扁平化

var arr = [1, [2, [3,4,5,[6,[7]]]],8];

function* flat(arr) {
	for (const v of arr) {
		if (Array.isArray(v)) {
			yield* flat(v)
		} else {
			yield v
		}
	}
}
var arr2 = [...flat(arr)]; // [1,2,3,4,5,6,7,8]