function btnDisplay_onclick() {
var age = ageTextboc.value;
var minWeight = [5, 15,25, 45, 60, 70, 75, 80];
minWeightTextbox.value = minWeight[age-1];
}
我想知道为什么我需要在age-1
中使用minWeightTextbox.value = minWeight[age-1];
部分,而不仅仅是age
。
如果有人可以帮助解释这确实是什么,那将是惊人的。
答案 0 :(得分:2)
从技术上讲,你不必做age-1
,你可以做age
......问题是你必须进入年龄从0开始而不是1.(假设你的数组准确为0意味着不到一个月。)
正如其他答案和评论中所解释的那样,原因是因为数组在javascript中从0开始(除了一些奇怪的地方以外的大多数地方都是如此)。
或者,您可以为数组中的0位置添加填充值。在这里我添加了1.现在您不必使用age-1
,您可以使用age
。
var minWeight = [1, 5, 15, 25, 45, 60, 70, 75, 80];
这是另一种以相同方式修改数组的替代方法;
var minWeight = [, 5, 15, 25, 45, 60, 70, 75, 80];
只有这一次,占据索引0的第一个位置是未定义的。
Here's some history to read up on.
数组索引是基数而不是序数。第一个(序数)位置是索引0(基数)。对象也可以有数字成员,但它们是名义上的。
Here's a clear explanation.订购的序号(第一),计数的基数(0,1,2 ......),命名的名义(#3)。
答案 1 :(得分:0)
这是因为数组是0索引的,并且该代码想要在视觉上表示以月为单位的年龄(1-9)。因此,如果我选择年龄“1”,则将数据存储在索引0处。
所以minWeight [0]代表“年龄”0的重量。