数组层级展开,多维数组拍平
2019-10-12 本文已影响0人
前端青音
methods: {
openArr(arr) {
// 方法一:
let result = []
arr.map(item => {
item instanceof Array
? (result = result.concat(this.openArr(item)))
: result.push(item)
})
return result
}
},
mounted() {
console.log(
'result:',
this.openArr([
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]],
10
])
)
}
![](https://img.haomeiwen.com/i11331125/1db274ab9f8a0740.png)
methods: {
openArr(arr) {
// 方法二
console.log('openArr:', arr, arr.toString(), arr.toString().split(','))
return arr
.toString()
.split(',')
.map(val => +val)
}
},
mounted() {
console.log(
'result:',
this.openArr([
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]],
10
])
)
}
![](https://img.haomeiwen.com/i11331125/3879e02f2f4c9372.png)
methods: {
// 方法三
openArr(arr) {
console.log('openArr:', arr)
return arr.reduce((result, item) => {
return Array.isArray(item)
? [...result, ...this.openArr(item)]
: [...result, item]
}, [])
}
},
mounted() {
console.log(
'result:',
this.openArr([
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]],
10
])
)
}
运行结果:
![](https://img.haomeiwen.com/i11331125/92e7432b530843e6.png)