数组扁平化,是将多维数组拉伸成一维数组,常用于二维数组转一维数组
目前ES10,提供flat()方法进行数组扁平化,但目前不少浏览器还不够完善,兼容不是很友好,所以需要用其他方法替代。以下是替代方法:
let arr = [["all"],[["110000","110100"]],[["120000","120100"]],[["130000","130100"],["130000","130200"],["130000","130300"],["130000","130400"],["130000","130500"],["130000","130600"],["130000","130700"],["130000","130800"],["130000","130900"],["130000","131000"]]];
function flatten(arr) {
var res = [];
arr.map(item => {
if(Array.isArray(item)) {
res = res.concat(flatten(item));
} else {
res.push(item);
}
});
return res;
}
执行打印:alert(flatten(arr))
打印结果:[“all”,“110000”,“110100”,“120000”,“120100”,“130000”,“130100”,“130000”,“130200”,“130000”,“130300”,“130000”,“130400”,“130000”,“130500”,“130000”,“130600”,“130000”,“130700”,“130000”,“130800”,“130000”,“130900”,“130000”,“131000”]