您好我正在大学学习 JavaScript ,这只是我的第一年,我们被要求做以下问题......
•生日:邀请用户输入12个生日,每月一个。这些被写入一个数组。然后,用户应该能够指示一个月并将该月的生日返回给他们...例如如果他们表示1月16日 - Aidan将作为他的名字返回并且1月份进入生日。
我们必须提示用户输入一年中每个月的朋友姓名和生日。然后他们可以输入一个月,它将输出那个月的朋友生日。
我们已以数组来执行此问题。我已经能够使用一个非常长的if / else语句来做它,但我不知道从一个数组开始。
非常感谢任何帮助。
如果我有声明,我没有数组代码:
function displayDetails() {
var jan = prompt("Enter a name and date for January");
var feb = prompt("Enter a name and date for February");
if (month = "january") {
alert(jan);
} else if (month = "february") {
alert("" + feb);
}
// ETC.
}
我开始声明阵列并进入月份。
var months = new Array ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
答案 0 :(得分:1)
注意:考虑这个答案热烈欢迎堆栈溢出。下一次,如果你想最大化你的答案机会,请展示一些研究工作。我不写出了问题的完整/最佳答案,您必须仔细阅读答案并将信息合并到您自己的程序中。
将问题切成小块并找出解决这些问题的方法。你已经解决了几个子问题。
生日:邀请用户输入12个生日,每月一个。这些写入数组。然后,用户应该能够指示一个月并将该月的生日返回给他们...例如如果他们表示1月, 16日 - Aidan将被退回,因为他的名字和生日是在1月份输入的。
你已经写过这一行了,所以你知道如何让某人“过生日”。
var jan = prompt("Enter a name and date for January");
您还尝试创建包含所有月份的数组。如果你检查浏览器的javascript控制台,你会发现这导致了一个错误:
// Uncaught SyntaxError: Invalid or unexpected token
var months = new Array ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
这是因为你混合了两种创建数组的方法:
var months = ["Jan", "Feb"]; // Using brackets
var months = new Array("Jan", "Feb") // Using new
成功定义数组后,您可以通过编写以下内容来检索值:
var theFirstMonth = months[0]; // Sets theFirstMonth to "Jan"
现在,您需要知道如何自动“循环”或“迭代”其值。例如,使用for
循环。
for (var i = 0; // Start with a variable `i`, that contains `0`
i < months.length; // As long as `i` is smaller then the nr. of months
i = i + 1) { // Execute the block below and increase `i` by 1 in the end
console.log(months[i]); // Retreive the value from the array using `i`
}
您将在控制台中看到12张照片,打印每个月的名字。
您也可以写入数组,而不是从数组中检索值。这与任何其他变量一样,使用=
:
var myArray = ["X", "B", "C"];
myArray[0] = "A"; // myArray is now ["A", "B", "C"]
您还可以使用push
var myArray = ["A", "B", "C"];
myArray.push("D"); // myArray is now ["A", "B", "C", "D"]
将两者结合起来应该是这样的:(我会让你填写空白的部分)
var months = ["January", "February"];
var birthdays = [];
for (var i = 0; i < months.length; i = i + 1) {
// Retreive the name of the month, create the question "Enter for ..."
// ...
// Ask the user for a date and name, store it in a variable
// ...
// push the input to the birthdays array
// ...
}
您知道如何获取用户输入,并且您知道如何从数组中检索值。你只需要做一件事:找到数组中值的索引。拿这个数组:
var months = ["January", "February", "March"];
“January”的索引是0
,因为它位于第一个位置。 “二月”的索引是1
。等等。
现在,知道如何遍历所有值,你能想到找到特定值索引的方法吗?
var valueToSearch = "March";
var months = ["January", "February", "March"];
var valueIndex = -1;
for (var i = 0; i < months.length; i = i + 1) {
if (months[i] === valueToSearch) {
valueIndex = i;
}
}
输入:
输出: