我希望获取数组 (sourceArr) 中的前两个位置并将它们分配给变量(此处代码中的 p & k)。使用剩余运算符在另一个数组结果中给出数组的剩余部分(arr19)。这段代码似乎可以很好地获取其余部分。但是,当我尝试将初始位置作为变量获取时,会出现“ Uncaught ReferenceError :p未定义”。
关于我做错了什么的任何提示!我认为 const [ p, k, ...arr19] = listMe 会定义 p 和 k ???
const sourceArr = [1,2,3,4,5,6,7,8,9,10]
function reassignFirstTwo(listMe) {
const [ p, k, ...arr19] = listMe // the p & k variables are grabbed, followed by the REST dots (...) to grab the remaining array elements.
return (p)
return (k)
return arr19
}
const arr19 = reassignFirstTwo(sourceArr)
console.log(arr19) // This gives the resulting array with the elements removed
console.log(sourceArr) // This gives the original array
console.log(p)
console.log(k)
最佳答案
函数中的第一个 return
仅返回 1
的 p
变量值,并在退出函数时跳过接下来的两个 return。
p
和 k
的作用域为函数 reassignFirstTwo
,因此您无法在该函数之外访问它。您正尝试全局访问,因此您将收到 Uncaught ReferenceError: p is not Defined
。
您可以从 reassignFirstTwo
函数将这三个变量作为对象返回,然后在调用它的地方对其进行解构以获取变量 arr19、p、k
(新变量)使用对象解构技术:
const sourceArr = [1,2,3,4,5,6,7,8,9,10]
function reassignFirstTwo(listMe) {
const [ p, k, ...arr19] = listMe;
return {p, k, arr19}
}
const { arr19, p, k } = reassignFirstTwo(sourceArr)
console.log({arr19, sourceArr, p, k});
关于javascript - 使用数组中的 Rest 运算符进行解构 : Grabbing Array elements as variables as well as capturing remaining array in JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60822097/