递归 function flatArr(arr) { let result = []; for (let i = 0; i< arr.length; i++ ){ if (Array.isArray(arr[i])) { result = result.concat(flatArr(arr[i])); } else { result.push(arr[i]); } } return result; } 先通过toString()把数组转成String对象,再结合split() 方法使用逗号分隔符将String对象分割成字符串数组,再用map函数将数组中的字符串转成数字。 function flatArr(arr) { return arr.toString().split(',').map(Number); } reduce函数 function flatArr(arr) { return arr.reduce(function(pre, next) { if (Array.isArray(next)) { return pre.concat(flatArr(next)); } else { return pre.concat(next); } }, []) } flat function flatArr(arr) { return arr.flat(Infinity); }