Javascript 试图理解JS数组

Javascript 试图理解JS数组,javascript,arrays,Javascript,Arrays,我想知道为什么我需要在minweightextbox.value=minWeight[age-1]中使用age-1part而不仅仅是年龄 function btnDisplay_onclick() { var age = ageTextboc.value; var minWeight = [5, 15,25, 45, 60, 70, 75, 80]; minWeightTextbox.value = minWeight[age-1]; } 如果有人能准确地解释它的作用,那将是令人

我想知道为什么我需要在
minweightextbox.value=minWeight[age-1]中使用
age-1
part而不仅仅是
年龄

function btnDisplay_onclick() {
  var age = ageTextboc.value;
  var minWeight = [5, 15,25, 45, 60, 70, 75, 80];

  minWeightTextbox.value = minWeight[age-1];
}

如果有人能准确地解释它的作用,那将是令人惊讶的。

这是因为数组是0索引的,而代码希望以月份(1-9)直观地表示年龄。因此,如果我选择年龄“1”,则将数据存储在索引0处

所以minWeight[0]代表“age”0的权重。

从技术上讲,你不必做
age-1
,你只需要做
age
。。。问题是你必须从0开始输入年龄,而不是从1开始。(假设您的数组精确到0表示不到一个月。)

正如在其他答案和注释中所解释的那样,原因是在javascript中数组从0开始(除某些奇怪的地方外,大多数其他地方都从0开始)

或者,可以为数组中的0位置添加填充值。这里我添加了1。现在您不必使用
age-1
,只需使用
age

function btnDisplay_onclick() {
  var age = ageTextboc.value;
  var minWeight = [5, 15,25, 45, 60, 70, 75, 80];

  minWeightTextbox.value = minWeight[age-1];
}
下面是另一个以相同方式修改数组的替代方案

var minWeight = [1, 5, 15, 25, 45, 60, 70, 75, 80];
只有这一次,占据索引0的第一个位置未定义

数组索引是基数而不是序数。第一(序数)位是索引0(基数)。对象也可以有数字成员,但它们是名义上的


序数表示排序(1),基数表示计数(0,1,2…),名词表示命名(#3)。

但-1的确切含义是什么?它使它从1开始而不是从0开始?很抱歉,如果这是一个愚蠢的问题。我们不知道你的变量中有什么,所以我们帮不了什么忙。这会有帮助吗?不要链接到代码的图片,将代码放在问题中。另外,请为您的问题选择一个有意义的标题。