functionflatten(arr){return(arr + '').split(',') } lodash 层次法 lodash 分为浅扁平化和深扁平化(deepFlatten)两个方法。 浅扁平化就是只扁平化一层数组 深扁平化就是迭代调用浅扁平化函数 而浅扁平化有下列实现方法: functionshallowFlatten(arr){return[].concat.apply([],arr) } 或者 functionshallo...
function flatten(arr) { var result = []; for (var i = 0, len = arr.length; i < len; i++) { if (Array.isArray(arr[i])) { result = result.concat(flatten(arr[i])); } else { result.push(arr[i]); } } return result; } console.log(flatten(arr)); 第二种方法:reduce. r...
function shallowFlatten(arr) { return arr.reduce((a, b) => a.concat(b), []) } 1. 2. 3. 所以我们最终实现的是: function flatten(arr,n=1){ let result = arr while(n--){ result = shallowFlatten(result) } return result } 1. 2. 3. 4. 5. 6. 7. 唯一变化的是调用方法从flatte...
一、while遍历 constarr1=[1,2,3,[4,5,[7,8]]];constflatten=function(arr){while(arr.some((v)=>Array.isArray(v))){arr=[].concat(...arr);}returnarr;};console.log(flatten(arr1)); 二、map方法 constarr2=[1,2,3,[4,5,[7,8]]];constflatten2=function(arr){return[].concat(.....
functionflatten(arr){return(arr+'').split(',')} lodash 层次法 lodash 分为浅扁平化和深扁平化(deepFlatten)两个方法。 浅扁平化就是只扁平化一层数组 深扁平化就是迭代调用浅扁平化函数 而浅扁平化有下列实现方法: functionshallowFlatten(arr){return[].concat.apply([],arr)} ...
JS 数组扁平化之简单方法实现 什么是扁平化 一句话解释,数组扁平化是指将一个多维数组(含嵌套)变为一维数组 扁平化之 ES5 toString 代码语言:txt 复制 const arr = [1, 2, 3, [4, 5, [6, 7]]]; const flatten = arr.toString().split(',');...
flatten(arr1); //[1, 2, 3, 1, 2, 3, 4, 2, 3, 4] 利用for循环遍历数组的每一项并加以判断,如果不是数组,就执行push操作, 是数组的化,就再次执行该函数(递归),直至遍历完整个数组。 ps: ...和concat()可以进行替换,所以完全可以算是2种方法。
也可以使用some()方法来更简单地实现,因为some()方法返回数组是否有元素满足条件的布尔值,因为可以将条件设置为数组中是否有元素是数组。 代码语言:javascript 复制 functionmyFlatten(arr){while(arr.some(item=>Array.isArray(item))){// 如果还有数组中还有数组,那就使用`concat`+扩展运算符来一层一层打平数组...
_.flatten(array, [shallow]) flatten() 方法将嵌套数组展开,其中嵌套可以达到任意长度。 如果 shallow 的值为 true,则数组将仅成为第一级。 示例 var _ = require('underscore'); var list = [1, [2], [4], 5, [[6]]] result = _.flatten(list); console.log(result) result = _.flatten(li...
functionflatten(array) {varlength = array ==null?0: array.length;returnlength ?baseFlatten(array,1) : []; } 通过源码,我们可以很清晰的得到flatten方法的核心功能都是由baseFlatten实现的。 经常使用lodash的开发者会发现,flattenDeep和flattenDepth中有baseFlatten ...