首页 > 解决方案 > 使用扩展运算符的 AssertionError

问题描述

尝试使用扩展运算符编写函数以将元素添加到数组中。下面是我编写的代码,它不断返回 AssertionError: expected [ Array(5) ] to deep equal [ 'foo', 1 ]

var chocolateBars = ["snickers", "hundred grand", "kitkat", "skittles"];

function addElementToBeginningOfArray(candyBars,twix) {
  return ["twix", ...chocolateBars];
}

标签: javascriptoperator-keywordspread

解决方案


我认为您的代码中有错字?我假设您的意思是这样做:

var chocolateBars = ["snickers", "hundred grand", "kitkat", "skittles"];

function addElementToBeginningOfArray(candyBars,twix) {
  return ["twix", ...candyBars];
}

console.log(addElementToBeginningOfArray(chocolateBars);

编辑:它打印出来:(5)[“twix”,“snickers”,“hundred grand”,“kitkat”,“skittles”]

这是你期望看到的吗?

编辑:与提问的人犯了同样的错字。更正了这一行: return ["twix", ...candyBars];

事实上,因为我的回答被选错了,所以让我更详细地说明这一点并提供帮助。代码确实不会像主题所有者看到的那样抛出错误,因为变量 ChocolateBars 具有全局范围。它会起作用的。在我看来,错误或多或少似乎他/她正在运行单元测试,但不知何故只期望数组中的一个元素,但实际上他们有五个?这就是该代码的工作方式。ChocolateBars 中应该有 5 个元素。所以可能修复错字可以解决他/她的问题,因为他不小心改变了巧克力棒


推荐阅读