编写一个删除数组的函数并添加到列表中

时间:2016-04-24 02:28:48

标签: javascript arrays

我目前正在freecodecamp学习Javascript,而且我正在学习功能。

我正在执行一项任务,要求我修改一个queue类型,它将从数组中删除第一个项目,并将其替换为另一个项目(在数组的末尾)。< / p>

这是我到目前为止所拥有的:

function nextInLine(arr, item) {
  // Your code here
  array = [];
  array.shift(arr);
  array.push(item);
  return arr;  // Change this line
}

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

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

然而,当使用测试设置运行时,它会输出:

  

之前:[1,2,3,4,5]

     

之后:[1,2,3,4,5]

我很困惑,因为所有人都离开了......我将如何完成这项任务?

实际任务:

  

在计算机科学中,队列是一个抽象的数据结构,其中的项目按顺序保存。可以在队列的后面添加新项目,并从队列的前面取出旧项目。

     

编写一个函数nextInLine,它接受一个数组(arr)和一个数字(item)作为参数。将数字添加到数组的末尾,然后删除数组的第一个元素。然后,nextInLine函数应返回已删除的元素。

4 个答案:

答案 0 :(得分:4)

tl; dr您正在使用$type_of_poker = "hold'em no limit"; //binding the parameters to your sql statement $sql = "INSERT INTO hands (type_of_poker) VALUES (:type_of_poker)"; $stmt = $conn->prepare($sql); $stmt->bindParam(':type_of_poker',$type_of_poker); $stmt->execute(); Array.prototype.shift错误。

Array.prototype.push从数组中删除第一项,返回该项。而不是

shift

你想做

array = [];
array.shift(arr);

var firstItem = arr.shift(); 将一个项添加到数组的末尾。你想改变原来的数组对象到位,所以你想做

push

然后返回第一项

arr.push(item);

这为您提供以下功能:

return firstItem;

答案 1 :(得分:3)

如果要修改传递的数组,则应运行其上的所有命令。

function nextInLine(arr, item) {
  // Your code here
  arr.shift();
  arr.push(item);
  return arr;  // this line is only required if you want to assign to a new array at the same time
}

答案 2 :(得分:0)

function nextInLine(arr, item) 
{ 
    // Your code here arr.push(item); 
    return item = arr.shift(); 
    // return item; 
    // Change this line 
}

答案 3 :(得分:0)

试试这个:-

function nextInLine(arr, item) {
 arr.push(item);
 item = arr.shift();
 return item;
}