如何在JavaScript中记录数组的索引?
这个问题更多的是一个为什么这个特定的代码以这种方式工作,而不是一个我如何才能使这个代码以这种方式工作 我正在浏览我的JavaScript教程中的codecade,我遇到了一个可以在我自己的代码中概念性地使用的课程,因为我可以看到这个特定代码的模式——但是这段代码为什么以这种方式工作是没有意义的 以下是一个例子:如何在JavaScript中记录数组的索引?,javascript,arrays,Javascript,Arrays,这个问题更多的是一个为什么这个特定的代码以这种方式工作,而不是一个我如何才能使这个代码以这种方式工作 我正在浏览我的JavaScript教程中的codecade,我遇到了一个可以在我自己的代码中概念性地使用的课程,因为我可以看到这个特定代码的模式——但是这段代码为什么以这种方式工作是没有意义的 以下是一个例子: let myArray = ['First','Second','Third']; var last = myArray[myArray.length - 1]; console.log
let myArray = ['First','Second','Third'];
var last = myArray[myArray.length - 1];
console.log(last);
运行上述代码时,控制台显示“第三”。我知道JavaScript语言是一种“零索引”语言,我知道这个数组中的“第一个”是从左到右计数的位置“0”,但我的问题是,即使我们从“0”开始计数每个项目;0然后1然后2;控制台不应该记录“秒”吗
而不是“第三”?还是JavaScript中的“length”方法忽略了基于“0”的索引系统,而实际上从“1”开始计数;在这种情况下,答案仍然应该是“第二”,而不是“第三”。。。不管我的大脑如何把这些加起来,我的脑海中总是会出现“第二”而不是“第三”,即使控制台上的输出是“第三”
谁能解释一下我遗漏了什么吗?
数组。长度是数组中的许多项,共有3项。但是数组索引从0开始,最后一个索引将是2,而不是3。因此,如果要使用数组.length获取数组元素,如果要获取最后一个元素,则需要将此长度减少1;如果要获取上一个元素,则需要将此长度减少2,依此类推。尝试此代码,它会有所帮助。这东西对我来说也很棘手。它只是使用一个变量,同时进行计算
let myArray = ['First','Second','Third'];
var last = myArray[myArray.length - 1];
console.log(last);
首先,我们必须注意,myArray.length
是3,因为其中有3项
第二,现在我们可以重新分析这个问题,但需要将myArray.length
与3:
myArray[3 - 1]
现在,你可以看到它只是在计算3-1,也就是2,所以代码与:
myArray[2] // which returns the item at position 2 (starting from 0), [0, 1, 2]
Array.length返回数组中的项数。这与指数无关
不过,长度-1始终是数组中的最终索引,因为实际上数组是0索引的。知道myArray.Length-1==2
。。。现在你觉得。。。长度就是长度,也就是3。。。不是2,因为有3个元素。。。索引是从零开始的,长度是。。。嗯,长度指标:0,1,2
的长度仍然是3
好吧,我明白了,是的,这很有道理,我想我的问题是我在概念上试图得到一个答案,而不是先将其分为两个单独的步骤(如你的示例),现在我看清楚了。谢谢有时看到类似的对象属性也很棘手。你可能会看到object.name
,或者你可能会看到object['name']
,有时候你会看到变量在里面,比如object[something1+something2]
,它是“串联”的(即:把两个东西砸在一起),所以它实际上是object.something1something2
。它们通常显示为object['something'+i]
(其中i
是一个向上的迭代器数)。注意,您还可以使用myArray.indexOf('Third')
查找所需对象的位置。