第一种方法
var arr = [1, 2, 3, [1, 2, 3, [4]]]; function flatten(arr) { while (arr.some(item => Array.isArray(item))) { arr = [].concat(...arr) } return arr }
第二种方法
Array.prototype.flatten = function(){ var result = [] this.forEach(item =>{ Array.isArray(item) ? result = result.concat(item.flatten()):result.push(item) }) return result }
第三种方法
function flatten(arr){ arr = arr || []; return arr.reduce(function(prev,next){ return Array.isArray(next) ? prev.concat(flatten(next)): prev.concat(next) },[]) }
第四种方法
arr.flat(Infinity)简单粗暴