2014-12-07 55 views
-1

恒定我需要创建一个包含字符串常量“JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC”创建月JS

到目前为止我的代码是工作到警戒阶段;

<html> 
<head> 
<script> 
MONTHS = 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'; //months 

var dateString = prompt('Enter your birth date in the form dd mmm yyyy','26 APR 1988'); //get  users date of birth 
var substrings = dateString.split(''); 
var day = substrings[0]; 
var month = substrings[1]; 
var year = substrings[2]; 

var pos = months.indexOf(month); 
if (pos >= 0) { 

}

alert(months.indexOf(month)); 
</script> 
</head> 
<body> 

</body> 
<html> 

当我更换它工作正常的 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC' 用; var months = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT',
“NOV” ,“DEC”]; 所以我在创建常量时做错了什么?

+1

为什么你希望它在不可思议的方式?在JS中有数组可用。顺便说一句,你没有解释你的基于字符串的实现有什么问题。 “我的代码到目前为止正在工作到警戒阶段” - 它的工作原理。所以?然后怎样呢?你怎么知道它确实做你认为应该做的事情? – zerkms 2014-12-07 01:56:16

+0

首先试着弄清楚发生了什么,这将是一件好事。数字提醒与否有关吗? – 2014-12-07 01:58:51

+0

我认为这是我被要求做的方式(使用常量):创建并适当地命名常量以存储以下值: 包含月份缩写'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC' – 2014-12-07 02:04:55

回答

1

您的第一个MONTHS var是一个字符串,所以当您使用string.indexOf时,您将获得所搜索内容的位置与所有字符串内容的比较。就拿这个例子:

var str = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"; 
console.log(str.indexOf("JUN")) ;  // gives 15 !! 

随着你的第二个months VAR至极是一个数组,这个时间:

console.log(months.indexOf("JUN")) ;  // gives 5, good value because arrays starts always with index 0, you have to do 5 + 1 or add an empty cell at the first of your months array 

我希望现在更清楚你。

0

您定义了“MONTHS”,然后在代码中稍后尝试使用“月”。 JavaScript区分大小写。

将拆分应该规定上的空白休息:

var substrings = dateString.split(' ');