知识点
Array.concat(1,2,3,[4,5])
Array.some(item => item instanceof Array)
判断是不是数组
xxx instanceof Array
用递归的方法
方法一
<script>
const arr = [1, 2, [3, 4, [5, 6]]];
const res = flat(arr);
console.log(res);
function flat() {
while (arr.some(item => item instanceof Array)) {
arr = Array.prototype.concat.apply([], arr);
}
return arr;
}
</script>
方法二
<script>
// 只能嵌套一层
// const arr = [1, 2, [3, 4]]
// const res = flat(arr)
// console.log(res)
// function flat() {
// return Array.prototype.concat.apply([], arr)
// }
// console.log(arr.flat())
const arr = [1, 2, [3, 4,[5,6]]]
const res = flat(arr)
console.log(res)
function flat(arr) {
const hasDeep = arr.some(item => item instanceof Array)
if (!hasDeep) {
return arr
}
const res = Array.prototype.concat.apply([], arr)
return flat(res)
}
// console.log(arr.flat())
// concat()拼接数组
// const arr1 = [10, 20, 30]
// const arr2 = [40, 50]
// const arr3 = arr1.concat(arr2)
// const arr3 = arr1.concat(40, 50, [60, 70])
// console.log(arr3)
</script>