gpt4 book ai didi

Javascript 数组 - 将用户输入输出给他们?

转载 作者:行者123 更新时间:2023-12-03 05:36:16 26 4
gpt4 key购买 nike

您好,我正在大学学习 JavaScript,这只是我的第一年,我们被要求做以下问题...

生日:邀请用户输入 12 个生日,每月一个。这些被写入一个数组中。然后,用户应该能够指定月份并返回该月的生日……例如如果它们表明 1 月 16 日 - 返回 Aidan,因为他的名字和生日是为 1 月输入的。

我们必须提示用户输入一年中每个月的 friend 姓名和生日。然后他们可以输入一个月,它会输出该月是哪个 friend 的生日。

我们必须将这个问题作为数组来完成。我已经能够使用很长的 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"];

最佳答案

注意:将此答案视为对堆栈溢出的热烈欢迎。下次,如果您想最大程度地获得答案,请付出一些研究努力。我没有写出您问题的完整/最佳答案,您必须通读答案并将信息合并到您自己的程序中。

将问题分解成小块并找出解决方法。您已经解决了几个子问题。

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。 “输入...生日”

您已经写过这一行,因此您知道如何让某人“输入生日”。

var jan = prompt("Enter a name and date for January");

2。 “每月一次”

您还尝试创建一个包含所有月份的数组。如果您检查浏览器的 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 个打印,打印每个月的名称。

3。 “写入数组”

您也可以写入数组,而不是从数组中检索值。这与任何其他变量一样,使用 = 完成:

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。 “指定月份,...返回”

您知道如何获取用户输入,并且知道如何从数组中检索值。您只需要做一件事:查找数组中值的索引。取这个数组:

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;
}
}

将这些东西放在一起:

输入:

  • 创建一个包含所有月份的数组
  • 为生日创建一个空数组
  • 循环查看每个月并询问用户输入
  • 将用户输入推送到您的生日数组

输出:

  • 询问用户月份名称
  • 在月份数组中查找本月的索引
  • 在您找到的索引处提醒生日数组中的生日输入

关于Javascript 数组 - 将用户输入输出给他们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com