javascript - 使用数组中的 Rest 运算符进行解构 : Grabbing Array elements as variables as well as capturing remaining array in JavaScript

标签 javascript arrays destructuring

我希望获取数组 (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 仅返回 1p 变量值,并在退出函数时跳过接下来的两个 return。

pk 的作用域为函数 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/

相关文章:

javascript - 我的 Highcharts 图表中的 STEP 参数有什么问题?

javascript - 如果隐藏另一个 div,则 div 宽度调整为 100%

javascript - Typescript 交换数组项

javascript - Bootstrap .dropdown li 背景颜色

javascript - d3 : Coloring Multiple Lines from Nested Data

php - 将数组作为参数传递

php - 使用值作为数组中的键以降低搜索项目时的复杂性

arrays - 获取值为数组中最大值的变量

javascript - 在 react/javascript 中解构数组

javascript - ES6 - 克隆一个对象并在一行中重命名它的键?