解构语法数组项和余数
Destructuring syntax array item and remainder
我正在努力掌握解构赋值语法以完成以下任务:
我有一个项目数组,比如 const arr = ['a','b','c']
,我想将其映射到另一个数组数组,其中每个项目都是从初始数组中挑选项目的余数,即 [['b','c'],['a','c'],['a','b']]
为此,我正努力做到
arr.map((_,i) => ([arr[i],...rest] = arr, rest))
还有那个returns
[['b', 'c'],['a', 'c'],['a', 'a']]
这显然不是,我需要的。我想,那是因为 arr
本身在这个过程中发生了某种变异。
我知道,我可以使用一些 splice()
或其他东西,但我试图弄清楚如何使它正常工作。
感谢您的帮助。
问题是您的代码总是会从数组中删除第一个元素。您可以将数组转换为对象,然后使用括号表示法 []
指定要删除的索引。然后 return 个对象的值。
let arr = ['a','b','c'];
const res = arr.map((_,i) => {
let {[i]:removed,...rest} = Object.assign({},arr);
return Object.values(rest)
})
console.log(res)
您可以直接解构数组并删除实际索引处的项目。
var array = ['a', 'b', 'c'],
result = array.map((_, i, { [i]: __, ...a }) => Object.values(a));
console.log(result); // ab ac bc
我正在努力掌握解构赋值语法以完成以下任务:
我有一个项目数组,比如 const arr = ['a','b','c']
,我想将其映射到另一个数组数组,其中每个项目都是从初始数组中挑选项目的余数,即 [['b','c'],['a','c'],['a','b']]
为此,我正努力做到
arr.map((_,i) => ([arr[i],...rest] = arr, rest))
还有那个returns
[['b', 'c'],['a', 'c'],['a', 'a']]
这显然不是,我需要的。我想,那是因为 arr
本身在这个过程中发生了某种变异。
我知道,我可以使用一些 splice()
或其他东西,但我试图弄清楚如何使它正常工作。
感谢您的帮助。
问题是您的代码总是会从数组中删除第一个元素。您可以将数组转换为对象,然后使用括号表示法 []
指定要删除的索引。然后 return 个对象的值。
let arr = ['a','b','c'];
const res = arr.map((_,i) => {
let {[i]:removed,...rest} = Object.assign({},arr);
return Object.values(rest)
})
console.log(res)
您可以直接解构数组并删除实际索引处的项目。
var array = ['a', 'b', 'c'],
result = array.map((_, i, { [i]: __, ...a }) => Object.values(a));
console.log(result); // ab ac bc