使用.shift()更新数组'5个元素
Using .shift() to Update an Array's Elements
我正在努力解决一个非常简单的问题,但我一直在一遍又一遍地思考,似乎不知道该怎么做。
http://jsbin.com/harokap/edit?js 输出var parkRides = [["Bumbling Boats", 20], ["Scary Cyclone", 45],
["Cloudy Crevase", 10], ["Crazy Crapshoot", 5]];
var fastPassQueue = ["Crazy Crapshoot", "Cloudy Crevase", "Bumbling Boats",
"Crazy Crapshoot"];
function writeTicket(allRides,passRides,pick){
if(pick == passRides[0]){
passRides.shift();
return function(){
alert("Lucky you! You got a Fast Pass to " + pick + "!");
};
}else{
for(var i = 0; i < allRides.length; i++){
if(pick == allRides[i][0]){
return function(){
alert("Now printing ticket for " + pick + ". Your wait time is about " + allRides[i][1] + " minutes.");
};
}
}
}
}
var rideChoice = "Crazy Crapshoot";
var ticket = writeTicket(parkRides,fastPassQueue,rideChoice);
ticket();
在该代码中,我有一个名为"fastPassQueue"的数组,我想在"writeTicket"函数中使用passRides.shift()更新它。
我希望writeTicket在每次运行函数时(并随后在第一次调用函数后运行else条件)都能识别第一个元素已从fastPassQueue中删除,但我不知道如何做到这一点。我试过将fastPassQueue添加到函数的开头,如果我先以原始方式运行函数,然后将其添加到函数中,则可以工作,但我不知道如何从一开始就使其工作…
提前感谢您的反馈
这就像在for
循环中不返回函数一样简单,而是创建字符串,并始终返回函数
var parkRides = [
["Bumbling Boats", 20],
["Scary Cyclone", 45],
["Cloudy Crevase", 10],
["Crazy Crapshoot", 5]
];
var fastPassQueue = ["Crazy Crapshoot", "Cloudy Crevase", "Bumbling Boats", "Crazy Crapshoot"];
function writeTicket(allRides, passRides, pick) {
if (pick == passRides[0]) {
passRides.shift();
return function () {
alert("Lucky you! You got a Fast Pass to " + pick + "!");
};
} else {
var match = "";
for (var i = 0; i < allRides.length; i++) {
if (pick == allRides[i][0]) {
match = "Now printing ticket for " + pick + ". Your wait time is about " + allRides[i][1] + " minutes.";
}
}
return function () {
alert(match);
};
}
}
var rideChoice = "Bumbling Boats";
var ticket = writeTicket(parkRides, fastPassQueue, rideChoice);
ticket();
小提琴
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- Rails/Javascript链接到用于切换多个元素的函数
- 如何使用jquery animate来回移动多个元素
- 如何在jQuery中包装两个元素的组
- 在页面上创建多个元素,而不是一个发生更改的元素
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 在多个元素上使用jquery插件,只需稍作修改
- jQuery body onChange具有多个元素和多个函数
- Small Javascript从动态表单中删除多个元素的问题
- 是否可以在第n个元素处重复启动ng
- 角度指令:指向第二个元素
- 使用jQuery获取第N个元素的数据属性值
- 将多个元素绑定到同一onclick
- AJAX搜索2个元素
- jquery点击选择器附加在多个元素上
- 如果同一页面上有多个元素使用相同的ID,jQuery将计算价格
- 检查来自不同数组的两个元素的一个属性是否相等
- 在几个元素上模拟onclick事件
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 列出每行2个元素的最佳方式是按角度重复ng