Javascript 数组 - 将用户输入输出回给他们?
Javascript Array - Outputting users input back to them?
你好,我正在大学学习 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"];
注意:将此回答视为对堆栈溢出的热烈欢迎。下次,如果您想最大限度地获得答案,请展示一些研究成果。我没有写出full/best问题的答案,你必须通读答案并将信息组合到你自己的程序中。
将问题分解成小块并找出解决这些问题的方法。您已经解决了几个子问题。
Birthdays: The user is invited to enter 12 birthdays, one in each month. These are written into an array. The user should then be able to indicate a month and have the birthday for that month returned to them… e.g. if they indicate January, 16th - Aidan is returned as his name and birthday was entered for January.
1。 "Enter ... birthdays"
你已经写过这行,所以你知道如何让某人 "enter a birthday"。
var jan = prompt("Enter a name and date for January");
2。 "one in each month"
您还尝试创建一个包含所有月份的数组。如果您检查浏览器的 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"
现在,您需要知道如何自动 "loop" 或 "iterate" 其值。例如,通过使用 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 个打印件,打印每个月的名称。
3。 "written into an array"
除了从数组中检索值,您还可以写入它。这与任何其他变量一样完成,使用 =
:
var myArray = ["X", "B", "C"];
myArray[0] = "A"; // myArray is now ["A", "B", "C"]
您还可以使用 push
将项目添加到数组的 end
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
// ...
}
4。 "indicate a month, ... is returned"
您知道如何获取用户输入,并且知道如何从数组中检索值。您只剩下一件事需要做:在数组中找到值的索引。取这个数组:
var months = ["January", "February", "March"];
"January" 的索引是 0
,因为它位于第一个位置。 "February"的索引是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;
}
}
把这些东西放在一起:
输入:
- 创建一个包含所有月份的数组
- 为生日创建一个空数组
- 遍历每个月并要求用户输入
- 将用户输入推送到您的生日数组
输出:
- 询问用户月份的名称
- 在您的月份数组中查找本月的索引
- 在您找到的索引处提醒生日数组中的生日输入
你好,我正在大学学习 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"];
注意:将此回答视为对堆栈溢出的热烈欢迎。下次,如果您想最大限度地获得答案,请展示一些研究成果。我没有写出full/best问题的答案,你必须通读答案并将信息组合到你自己的程序中。
将问题分解成小块并找出解决这些问题的方法。您已经解决了几个子问题。
Birthdays: The user is invited to enter 12 birthdays, one in each month. These are written into an array. The user should then be able to indicate a month and have the birthday for that month returned to them… e.g. if they indicate January, 16th - Aidan is returned as his name and birthday was entered for January.
1。 "Enter ... birthdays"
你已经写过这行,所以你知道如何让某人 "enter a birthday"。
var jan = prompt("Enter a name and date for January");
2。 "one in each month"
您还尝试创建一个包含所有月份的数组。如果您检查浏览器的 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"
现在,您需要知道如何自动 "loop" 或 "iterate" 其值。例如,通过使用 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 个打印件,打印每个月的名称。
3。 "written into an array"
除了从数组中检索值,您还可以写入它。这与任何其他变量一样完成,使用 =
:
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
// ...
}
4。 "indicate a month, ... is returned"
您知道如何获取用户输入,并且知道如何从数组中检索值。您只剩下一件事需要做:在数组中找到值的索引。取这个数组:
var months = ["January", "February", "March"];
"January" 的索引是 0
,因为它位于第一个位置。 "February"的索引是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;
}
}
把这些东西放在一起:
输入:
- 创建一个包含所有月份的数组
- 为生日创建一个空数组
- 遍历每个月并要求用户输入
- 将用户输入推送到您的生日数组
输出:
- 询问用户月份的名称
- 在您的月份数组中查找本月的索引
- 在您找到的索引处提醒生日数组中的生日输入