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开始?很抱歉,如果这是一个愚蠢的问题。我们不知道你的变量中有什么,所以我们帮不了什么忙。这会有帮助吗?不要链接到代码的图片,将代码放在问题中。另外,请为您的问题选择一个有意义的标题。