JavaScript 数组扁平化
let arr = [
[1],
[1, 2, 3],
[1, [2, 3]]
]
JS 自带 flat
方法
arr.flat(Infinity)
toString 方法可以
arr.toString().split(',').map(item => Number(item))
JSON 的方法也可以
JSON.stringify(arr).replace(/\[\]/g, '').split(',').map(item => Number(item))
concat 可以展开一层,一直展开到数组里面没有数组
while (arr.some(item => Array.isArray(item))) { arr = [].concat(...arr) }
递归判断
Array.prototype.myFlat = function () { let result = []; let _this = this; function _flat(arr) { for (let i = 0; i < arr.length; i++) { let item = arr[i] if (Array.isArray(item)) { _flat(item) } else { result.push(item) } } } _flat(_this) return result }
更高级 一点的写法
function flatten (arr) { return [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x ) ) }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论