我目前正在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函数应返回已删除的元素。
答案 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;
}