flatMap()方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与map连着深度值为1的flat()几乎相同,但flatMap()通常在合并成一种方法的效率稍微高一些。 语法 // Arrow functionflatMap((currentValue) =>{ ... } )flatMap((currentValue, index) =>{ ... } )flatMap((currentValue, index...
letresult = [];letfn =function(ary){for(leti =0; i < ary.length; i++) }{letitem = ary[i];if(Array.isArray(ary[i])){fn(item);}else{result.push(item);}}} 第5种处理:用 reduce 实现数组的 flat 方法 functionflatten(ary...
const flattenedArr = arr.flat(); console.log(flattenedArr); // [1, 2, 3, 4, 5, 6] ``` 在这个例子中,原始数组arr包含了一个嵌套的子数组。通过调用flat方法,我们将这个嵌套数组展平成了一个一维数组。 除了可以展平一维数组外,flat方法还支持展平多维数组。如果我们传递一个参数给flat方法,这个参...
flatMap()方法对原数组的每个成员执行一个函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。 // 相当于 [[2, 4], [3, 6], [4, 8]].flat()[2,3,4].flatMap((x) =>[x, x *2])// [2, 4, 3, 6, 4, 8] 转载https:...
数组的flat方法: Flat()俗称把数组拍平的方法。 使用flat方法时可以传递一个数字,代表拍平嵌套数组的层数,不传值的话则为默认值1。如果我们传递的参数为Infinity,则会将所有嵌套数组拍平。如果数组中有空元素,则拍平后的数组也不包含空元素 letarr1 = [1,2, [3,4]]; ...
我们可以迭代数组的每个元素,然后把其放入新数组中并打平,最后再将得到的数组打平。 arr3.map(v=>[...v]).flat() 还有另外一个办法,直接使用Array.flat()方法: arr3.flatMap(v=>[...v]) 这样效率会更高。 熟悉了数组的flat与flatMap方法后我们做个实例: ...
flat 定义:展平数组,默认展平一层,传入参数depth则展平depth层,返回展平后的数组,不改变原数组。 const arr1 = [0, 1, 2, [3, 4]]; arr1.flat() // [0, 1, 2, 3, 4] 使用Infinity,可展开任意深度的嵌套数组。 使用flat方法会移出数组中的空项。
flat()将多维数组转化为低维数组 const arr = [1,2,3,4,[5,6]] console.log(arr.flat()) //[1, 2, 3, 4, 5, 6] const arr1 = [1,2,3,4,[5,6,[7,8,9]]] console.log(arr1.flat()) //[1, 2, 3, 4, 5, 6, [7,8,9]] //想将多维数组转成一维数组,则需要参数 console...
JavaScript的数组的flat()方法 有些场景下,我们需要将具有嵌套结构的数组打平,ES2019新增了flat()方法用于数组的打平操作,例如: constarr1=[1,[2,3],4]constarr2=arr.flat()console.log(arr2)//=>[1,2,3,4] 该方法还可以接收一个整数,表示打平的深度,默认情况下,打平一级嵌套,例如: ...