如何在JavaScript中获取数组特定索引处的值?

138

我有一个数组,只想获取索引1处的元素。

var myValues = new Array();
var valueAtIndex1 = myValues.getValue(1); // (something like this)

如何在JavaScript中获取数组中第一个索引的值?

8个回答

214
您可以使用方括号访问器获取特定索引处的元素。
var valueAtIndex1 = myValues[1];

在较新的浏览器/ JavaScript 引擎上(请参见此处的浏览器兼容性),你还可以在数组上使用 .at() 方法。

var valueAtIndex1 = myValues.at(1);
在正数索引上,两种方法的作用相同(第一种方法更常见)。然而,Array.prototype.at() 允许您通过传递负数来访问从数组结尾开始的元素。传递 -1 将会给出数组的最后一个元素,传递 -2 则是倒数第二个元素,以此类推。
请查看MDN文档获取更多详细信息。

这将返回第二个索引处的元素,而不是在问题中指定的“第1个”索引处。 - Tho.Tra
4
题目要求“获取索引为1的元素”。索引为1的元素是数组中的第二个元素。 - nCardot
我认为索引器不是一个官方术语...如果我错了请纠正我。 - nCardot

45

JavaScript中的数组索引从第一个元素开始为零,因此请尝试如下:

var firstArrayItem = myValues[0]

当然,如果你真的想获取数组中索引为1的第二个元素,那么它就是myValues[1]

有关更多信息,请参阅访问数组元素


15
你可以直接使用[]:
var valueAtIndex1 = myValues[1];

11

索引器 (array[index]) 是最常用的方法。另一种选择是使用 at 数组方法:

const cart = ['apple', 'banana', 'pear'];
cart.at(0) // 'apple'
cart.at(2) // 'pear'

如果您来自另一种编程语言,这可能会更加熟悉。


看起来at方法非常新/目前是一个提议。它在Chrome DevTools中工作,但在Edabit中不起作用。https://github.com/tc39/proposal-relative-indexing-method - nCardot

2

2022年更新

在ES2022中,您可以使用Array.prototype.at()

const myValues = [1, 2, 3]
myValues.at(1) // 2
< p >at() 还支持负索引,它返回数组末尾的元素

const myValues = [1, 2, 3]
myValues.at(-1) // 3
myValues.at(-2) // 2

阅读更多: MDNJavascriptTutorial规范


1

shift 可以用于想要获取数组的第一个元素 (index=0) 并与其他数组方法链接的位置。

例如:

const comps = [{}, {}, {}]
const specComp = comps
                  .map(fn1)
                  .filter(fn2)
                  .shift()

记住,shift会改变数组本身,这与通过索引访问是非常不同的。


0

由于你特别想获取索引为1的元素,你也可以使用 ES6 中的数组解构来实现此目的。

const arr = [1, 2, 3, 4];
const [zeroIndex, firstIndex, ...remaining] = arr;
console.log(firstIndex); // 2

或者,根据ES2022的规范,您也可以使用Array.at()

const arr = [1, 2, 3, 4];
console.log(arr.at(1)); // 2

0

你可以使用[];

var indexValue = Index[1];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接