主要考察的就是数组扁平化,由浅入深吧
①利用tostring()和split()
let arr = [1, 2, 3, [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]
let newarr=arr.toString().split(',')
let numarr=newarr.map((item)=>{
item=Number(item)
return item
})
console.log(numarr)
②利用es6 flat()
ok,现在来练习力扣
如果不限制flat用法:
var flat = function (arr, n) {
return arr.flat(n)
};
如果限制:
let arr = [1, 2, 3, [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]
var flat = function (arr, n) {
while (n > 0 && arr.some(Array.isArray)) {// arr.some(Array.isArray)判断arr里是否还含有数组
arr = [].concat(...arr);//扩展运算符...会将数组arr拆分成一个个独立的元素,...arr将数组展开为1, [2, 3], 4。
//[].concat(...arr)会得到新数组[1, 2, 3, 4]。
n--;
}
return arr;
};
作者:__sgf__ 链接:https://leetcode.cn/problems/flatten-deeply-nested-array/solutions/2286164/2625-bian-ping-hua-qian-tao-shu-zu-cong-b9vg5/ 来源:力扣
下面看一个示例回顾和理解concat(concat方法作用使用该方法的时候,它会创建一个当前数组的副本,然后将接受到的参数添加到该数组的末尾。)