javascript - 在 JavaScript 中创建数据结构

标签 javascript arrays function push shift

我目前正在 FreeCodeCamp 上尝试 JavaScript 挑战。几天来,我一直在努力应对这一挑战,但感到很困惑。我在该网站的论坛上寻求帮助,但得到的回复不是很有帮助或有用。

对于这个特殊的挑战,我必须“编写一个函数 nextInLine,它将一个数组 (arr) 和一个数字 (item) 作为参数。将数字添加到数组的末尾,然后删除数组的第一个元素。该nextInLine 函数应该返回被删除的元素。”

这是我目前的代码:

function nextInLine(arr, item) {
  // Your code here
  var nextInLine = ([], 1);
  /*var addToNextInLine = nextInLine.push();
  var removedFromNextInLine = nextInLine.shift();*/
  return nextInLine; 
}

// Test Setup
var testArr = [1,2,3,4,5];

// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine([], 1)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));

为了成功完成这个挑战,我必须满足以下条件:

  • nextInLine([], 1) 应该返回 1

  • nextInLine([2], 1) 应该返回 2

  • nextInLine([5,6,7,8,9], 1) 应该返回 5

  • 在nextInLine(testArr, 10)之后,testArr[4]应该是10

我成功完成了第一个要求,但仍无法弄清楚如何完成最后三个要求。因为我被要求从数组中“添加”和“删除”元素,所以我认为这意味着成功完成此练习需要 push 和 shift 函数。

但是当我测试我的代码时,我收到一条 TypeError 消息,内容为“nextInLine.push 不是一个函数”。在我看来,要么我错误地编写了 push 和 shift 函数的代码,要么这些函数可能不是完成这个挑战所必需的。因此,话虽这么说,我想问大家的问题是,我是否在代码中写错了一些东西,我应该从我的代码中删除一些东西,还是我遗漏了其他东西?

如果您想了解任何其他信息以便更好地理解我的问题,请告诉我。

最佳答案

作为一个也参加过 Free Code Camp 的人,我同意上面评论者的观点,你可以在类(class)中学到的最重要的事情是如何研究和如何提出问题。因此,我不会为您提供工作片段。不过,我会指出您的代码中的一些具体问题,这应该会为您指明正确的方向。

您的代码中存在一些语法问题,并且对如何处理 pushshift 存在误解。

首先,语法。

var nextInLine = ([], 1);

此行将 ([], 1) 的值赋给 nextInLine([], 1) 不是我所知道的任何 javascript 数据结构。如您的问题的评论中所述,它只返回 1

因为 pushshiftArray 对象上的方法,所以 nextInLine 应该是一个 Array ,给我们留下:

var nextInLine = []

接下来,考虑shift 方法的return 值,来自MDN :

[The return value is ] the removed element from the array; undefined if the array is empty.

所以您应该返回的是调用 shift() 返回的值。

最后,push() 需要您希望它pusharray 的值,您目前没有提供。

关于javascript - 在 JavaScript 中创建数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556715/

相关文章:

javascript - 将对象数组中的多个属性映射到同一个数组

javascript - 如何从 ng-click 操作中排除元素

Javascript 数据表插件

javascript如何将函数结果与数组中的值一起传递给同一个函数

r - 自定义环境中的范围(功能)

Python:如何使用 pprocess 修改函数中的全局变量

asp.net - 如何使用javascript标签发送参数?

java - 每次数组中出现数字时添加一个星号

python - 根据第一个数组的条件查找第二个数组中的值。最有效的方法是什么?

C++ 将 std::string 复制到没有空终止的 char 数组