console.log(arr.flat()); // 输出 [1, 2, 'a', Array(1), 'c'] ——— depth 默认值为1 console.log(arr); // 输出 [1, 2, Array(3)] ——— 不会改变原数组 const arr = [1, 2, ['a', ['b'], 'c']]; console.log(arr.flat('abc')); // 输出 [1, 2, Array(3)] ...
迭代器的升级版就是生成器(Generator),其实这种扁平化最适合用生成器来做了,因为我们的目的就是生成一个个的值,然后把它们组织成一维数组: function*flat(arr) {for(let item of arr) {if(Array.isArray(item)) yield*flat(item)elseyield item } }functionflatten(arr) { let result=[]for(let val of ...
在这个示例中,nestedArray是一个嵌套数组,通过调用flat方法,我们得到了一个一维数组flattenedArray,其中包含了嵌套数组的所有元素。 二、flat方法的原理 flat方法的原理是递归地将嵌套数组的元素提取出来,并生成一个新的一维数组。在每次递归过程中,flat方法都会将当前层级的数组元素展开,并将下一层级的数组作为新的嵌套...
数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。例如将 [1, [2, [3,4]]] 转化为 [1,2,3,4] 2、方法 (1)使用 flat() let arr = [1, [2, [3,4]]] const res1 = arr.flat(Infinity) (2)使用正则 const res2 = JSON.parse('[' + JSON.str...
flat 方法是 JavaScript 数组的一个内置方法,用于将嵌套的数组“扁平化”,即将多维数组转换为一维数组。它只会扁平化一层,如果需要扁平化多层,可以传递一个参数来指定深度。 2. flat 方法的基本使用示例 javascript const nestedArray = [1, [2, [3, [4]], 5]]; const flatArray = nestedArray.flat(); ...
Array.flat()方法可以将有嵌套的数组打平为一维数组,本方法不会影响原数组。 比如: var arr=[[1,2,3],4,5,[6,7,8]] 以上数组是一维数组中又嵌套了一维数组,现在想要将它打平,可以用扩展符号: var arr1=[...[1,2,3],4,5,...[6,7,8]] ...
constarr3=[-1,[0,1],[2,3],[4,[5,6,7]]];functionflatten3(arr){returnarr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?flatArr3(cur):cur),[]);}console.log(flatten3(arr2)); 四、flat(Infinity)方法 constarr4=[-1,[0,1],[2,3],[4,[5,6,7]]];constflatArr=arr4.flat...
arr3.map(v=>[...v]).flat() 还有另外一个办法,直接使用Array.flat()方法: arr3.flatMap(v=>[...v]) 这样效率会更高。 熟悉了数组的flat与flatMap方法后我们做个实例: 貌似有点多此一举对吧,但在WPS中使用JS解决问题时这是很常见的一步。
// return element for new_array }[, thisArg]) 1. 2. 3. flat var newArray = arr.flat([depth]); // depth defaults 1 // The depth level specifying how deep a nested array structure should be flattened. 1. 2. 3. 4.
return prev.concat(Array.isArray(cur) ? myReduce(cur) : cur); },[]) } console.log(myReduce(thisArr)) 第三种方法flat(depth) es6提供了一个新方法flat(depth),参数depth,代表展开嵌套数组的深度,默认是1 let arr = [1, [2, 3, [4, [5]]]; arr...