/

如何在 JavaScript 陣列中獲取項目的索引

如何在 JavaScript 陣列中獲取項目的索引

下面是根據值在 JS 陣列中檢索項目索引的方法。

假設您有一個包含在陣列中的項目的值,並且您想獲取其索引。

您該如何做到這一點?

如果項目是原始值,例如字符串或數字,您可以使用陣列的 indexOf 方法:

1
2
3
4
5
const letters = ['a', 'b', 'c']

const index = letters.indexOf('b')

//index 是 `1`

請記住,索引從數字 0 開始。

如果項目是物件,您無法使用這種方式,因為如果您嘗試這樣做:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const letters = [
{
letter: 'a',
},
{
letter: 'b',
},
{
letter: 'c',
},
]

const index = letters.indexOf({
letter: 'b',
})

index 將是 -1,這意味著未找到該項目。因為物件是按參考進行比較的,而不是按值進行比較(與原始類型不同)。傳遞給 indexOf 的物件是一個完全不同的物件,而不是陣列中的第二個項目。

您可以像這樣使用 findIndex 方法,它會遍歷陣列中的每個項目,並將元素和索引傳遞給運行的函式。從該函式返回的值將賦值給 findIndex 的返回值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const letters = [
{
letter: 'a',
},
{
letter: 'b',
},
{
letter: 'c',
},
]

const index = letters.findIndex((element, index) => {
if (element.letter === 'b') {
return true
}
})

//index 是 `1`

tags: [“JavaScript”, “array”, “index”, “findIndex”, “indexOf”]