blog
blog copied to clipboard
深度铺平数组 flatten
const flatten = (array) => {
return array.reduce((accumulator, currentValue) => {
if (!Array.isArray(currentValue)) {
accumulator.push(currentValue);
return accumulator;
} else {
const res = flatten(currentValue);
accumulator = accumulator.concat(res);
return accumulator;
}
}, []);
};
const flattenES6 = (array) => {
const flattenArray = array => [].concat(...array);
const res = array.map((item) => {
return Array.isArray(item) ? flattenES6(item) : item;
});
return flattenArray(res);
};
const arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];
const resultES6 = flattenES6(arr);
const result = flatten(arr);
console.log(resultES6);
console.log(result);