2012-07-26 77 views
0

我是JavaScript新手,想学习一些基础知识。Javascript代码 - code check

你能否请检查我是否正确地做了以下事情?如果没有,请概述我还没有做的事情。

我只好:

  • 计算诞生的用户每月的数,其中通过对月= 1月11日= 0。
  • 以字符串输入
  • 获取子是前三个字符
  • 转换为大写
  • 查找月份缩写字符串
  • 鸿沟这三个字母缩写的起始位置
  • (这不是找到月份号的唯一方法,但它允许我们练习在字符串中搜索)

我的代码:

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 
} 
+1

我会亲自使用子字符串(0,3)而不是substr,并且您被要求做上层,而不是小写 - 没有太大的区别,但是如果功课... – mplungjan 2012-07-26 04:19:06

+0

说明要求转换为大写,但是您要做'toLowerCase' 。 – sachleen 2012-07-26 04:20:23

+1

这里有什么真正的问题吗?你测试过了吗?它工作吗?如果没有,什么不起作用? – sachleen 2012-07-26 04:22:06

回答

0

您的代码显然没有遵循作出批示:

  • 转换为大写
  • 找到三个字母缩写的起始位置,在一个月的缩写字符串
  • 分这3
  • ...练一个字符串

寻找,但没有达到要求为将用户的出生月份计算为。我认为阵列搜索甚至优于字符串搜索(通过寻找月份名称("anf"等)之间,以及串也更快,因为没有检查这些可能性的任何伤害),但他们似乎要你用自己的方式去做。

0

,因为你只是想知道是否你的代码正确与否,但我认为你写的正确,如果你仍然想使用JavaScript的最佳实践,你可以参考下面的链接,你会发现这样谷歌上的很多链接。

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") 
0

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