数组扁平化,也就是把包含几个嵌套数组的数组转化成一个一维数组。
有以下几种方法:
1.reduce遍历数组每一项,若值为数组就递归遍历,否则cancat
function flatten(arr) {
return arr.reduce((result, item)=> {
return result.concat(Array.isArray(item) ? flatten(item) : item);
}, []);
}
2.map遍历
function flatten(arr) {
var res = [];
arr.map(item => {
if(Array.isArray(item)) {
res = res.concat(flatten(item));
} else {
res.push(item);
}
});
return res;
}
3.toString&split 调用数组的toString方法,将数组变为字符串后用split分割为数组。
function flatten(arr) {
return arr.toString().split(',').map(function(item) {
return Number(item);
})
}
4.join&split 同上
join可以把数组的所有元素放入一个字符串
split可以把字符串分割成字符串的数组
function flatten(arr) {
return arr.join(',').split(',').map(function(item) {
return parseInt(item);
})
}