Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中记录数组的索引?_Javascript_Arrays - Fatal编程技术网

如何在JavaScript中记录数组的索引?

如何在JavaScript中记录数组的索引?,javascript,arrays,Javascript,Arrays,这个问题更多的是一个为什么这个特定的代码以这种方式工作,而不是一个我如何才能使这个代码以这种方式工作 我正在浏览我的JavaScript教程中的codecade,我遇到了一个可以在我自己的代码中概念性地使用的课程,因为我可以看到这个特定代码的模式——但是这段代码为什么以这种方式工作是没有意义的 以下是一个例子: let myArray = ['First','Second','Third']; var last = myArray[myArray.length - 1]; console.log

这个问题更多的是一个为什么这个特定的代码以这种方式工作,而不是一个我如何才能使这个代码以这种方式工作

我正在浏览我的JavaScript教程中的codecade,我遇到了一个可以在我自己的代码中概念性地使用的课程,因为我可以看到这个特定代码的模式——但是这段代码为什么以这种方式工作是没有意义的

以下是一个例子:

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')
查找所需对象的位置。