538*_*MEO 3 javascript spread-syntax
这是我尝试过的:
let a = [[1,2], [3,4]];
a.map(val => ...val)
// => SyntaxError: expected expression, got '...'
// Expected output: [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我尝试使用明确的return声明和带有括号的周围值,但没有任何效果......
我只是想知道是否有一种简单的方法来返回“扩展数组”?
编辑:现在我已经看到了这个问题,它对扩展运算符的工作原理有精确的了解,尽管它并没有真正回答如何“展平”数组的问题(我修改了问题的标题)。
这不是有效的语法,为此,您需要将数组展开(“解压”其内容)到某种容器(例如数组)中。但是,如果您要做类似的事情:
a.map(val => [...val])
Run Code Online (Sandbox Code Playgroud)
您不会对数组做太多事情,相反,您最终会得到同一数组的副本。因此,您可以使用.map除.reduceor .flatMap/之外的不同方法.flat来实现所需的输出:
.reduce与扩展语法一起使用:
a.map(val => [...val])
Run Code Online (Sandbox Code Playgroud)
使用.flatMap():
let a = [[1,2], [3,4]];
let res = a.reduce((acc, val) => [...acc, ...val], []);
console.log(res)Run Code Online (Sandbox Code Playgroud)
.flatMap()然而,在这里毫无用处,因此使用.flat()就足够了:
let a = [[1,2], [3,4]];
let res = a.flatMap(val => val); // map the contents (without the holding array) [[1, 2], [3, 4]] -> [1, 2, [3, 4]] -> [1, 2, 3, 4]
console.log(res)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |