0

我是 Javascript 新手,正在尝试学习一些基础知识。

您能否检查我是否正确执行了以下操作?如果没有,请概述我还没有做什么。

我不得不:

  • 将用户的出生月份计算为从 1 月 = 0 到 12 月 = 11 的数字。
  • 取输入的字符串
  • 获取作为前三个字符的子字符串
  • 转换为大写
  • 在月份缩写字符串中查找三个字母缩写的起始位置
  • 将此除以 3
  • (这不是找到月份编号的唯一方法,但它允许我们练习在字符串中搜索)

我的代码:

var year = prompt('Enter year of birth as a 4 digit integer');  

var month = prompt('Enter the name of the month of birth');
// Chop everything after the first 3 characters and make it lowercase
month = month.substr(0,3).toLowerCase();
// Store your array in months, differently named than the month input
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct",
"nov", "dec"];  

// We then use array.indexOf() to locate it in the array
var pos = months.indexOf(month);
if (pos >= 0) {
// valid month, number is pos
}
4

3 回答 3

0

因为你只是想知道你的代码是否正确,但我认为你写得很好,如果你仍然想使用 javascript 的最佳实践,你可以参考下面的链接,你会在 google 上找到很多链接。

http://www.javascripttoolbox.com/bestpractices/

http://net.tutsplus.com/tutorials/javascript-ajax/24-javascript-best-practices-for-beginners/

顺便说一句,你的功能的一行代码也可以写成:

if(months.indexOf(month.substr(0,3))>=0) alert("present")
于 2012-07-26T04:37:48.830 回答
0

“月份缩写字符串”应该是"JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC".

于 2012-07-26T04:38:48.963 回答
0

您的代码显然不遵循给定的说明:

  • 转换为大写
  • 在月份缩写字符串中查找三个字母缩写的起始位置
  • 将此除以 3
  • ...练习在字符串中搜索

但确实满足将用户的出生月份计算为数字的要求。我认为数组搜索甚至优于字符串搜索(通过在月份名称("anf"等)之间查找字符串没有害处,并且由于不检查这些可能性也更快),但他们似乎希望你用他们的方式来做。

于 2012-07-26T04:58:36.530 回答