解构语法数组项和余数

Sna*_*ass 3 javascript arrays destructuring ecmascript-6

我正在尝试掌握解构分配语法以完成以下任务:

我有一个项目数组,例如const arr = ['a','b','c'],我想映射到另一个数组数组,其中每个项目都是从初始数组中挑选项目的剩余部分,即[['b','c'],['a','c'],['a','b']]

为此,我正在尝试做

arr.map((_,i) => ([arr[i],...rest] = arr, rest))
Run Code Online (Sandbox Code Playgroud)

那又回来了

[['b', 'c'],['a', 'c'],['a', 'a']]
Run Code Online (Sandbox Code Playgroud)

显然不是我需要的。我猜这是因为arr它本身在此过程中会发生某种变化。

我知道,我可以使用其他splice()一些东西,但是我试图弄清楚如何使它正常工作。

谢谢你的帮助。

Nin*_*olz 7

您可以直接对数组进行解构并删除实际索引处的项目。

var array = ['a', 'b', 'c'],
    result = array.map((_, i, { [i]: __, ...a }) => Object.values(a));

console.log(result); // ab ac bc
Run Code Online (Sandbox Code Playgroud)

  • 这是太棒了。 (2认同)