JavaScript 陣列搜尋
陣列查詢和搜尋方法
JavaScript Array indexOf()
indexOf()
方法在陣列中搜索元素值並返回其位置。
注意: 第一個專案的位置是 0,第二個專案的位置是 1,以此類推。
示例
在陣列中搜索專案 "Apple"
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.indexOf("Apple") + 1;
自己動手試一試 »
語法
array.indexOf(item, start)
item | 必需。要搜尋的專案。 |
start | 可選。開始搜尋的位置。負值將從末尾開始計數,並搜尋到末尾。 |
Array.indexOf()
如果找不到專案,則返回 -1。
如果專案出現多次,它將返回第一次出現的位置。
JavaScript Array lastIndexOf()
Array.lastIndexOf()
與 Array.indexOf()
相同,但返回指定元素最後一次出現的位置。
示例
在陣列中搜索專案 "Apple"
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.lastIndexOf("Apple") + 1;
自己動手試一試 »
語法
array.lastIndexOf(item, start)
item | 必需。要搜尋的專案 |
start | 可選。開始搜尋的位置。負值將從末尾開始計數,並搜尋到開頭 |
JavaScript 陣列 includes() 方法
ECMAScript 2016 在陣列中引入了 Array.includes()
。這允許我們檢查一個元素是否存在於陣列中(包括 NaN,與 indexOf 不同)。
示例
const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.includes("Mango"); // 為 true
自己動手試一試 »
語法
array.includes(search-item)
Array.includes() 允許檢查 NaN 值。與 Array.indexOf() 不同。
瀏覽器支援
includes()
是一個 ECMAScript 2016 功能。
自 2017 年 3 月以來,ES 2016 在所有現代瀏覽器中都得到了完全支援
Chrome 52 | Edge 15 | Firefox 52 | Safari 10.1 | Opera 39 |
2016 年 7 月 | 2017 年 4 月 | 2017 年 3 月 | 2017 年 5 月 | 2016 年 8 月 |
includes()
在 Internet Explorer 中不受支援。
JavaScript Array find()
find()
方法返回第一個透過測試函式的陣列元素的值。
此示例查詢(返回值)大於 18 的第一個元素
示例
const numbers = [4, 9, 16, 25, 29];
let first = numbers.find(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
自己動手試一試 »
請注意,該函式接受 3 個引數
- 專案值
- 專案索引
- 陣列本身
瀏覽器支援
find()
是一個 ES6 功能 (JavaScript 2015)。
自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
find()
在 Internet Explorer 中不受支援。
JavaScript Array findIndex()
findIndex()
方法返回第一個透過測試函式的陣列元素的索引。
此示例查詢大於 18 的第一個元素的索引
示例
const numbers = [4, 9, 16, 25, 29];
let first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
自己動手試一試 »
請注意,該函式接受 3 個引數
- 專案值
- 專案索引
- 陣列本身
瀏覽器支援
findIndex()
是一個 ES6 功能 (JavaScript 2015)。
自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
2016 年 5 月 | 2017 年 4 月 | 2017 年 6 月 | 2016 年 9 月 | 2016 年 6 月 |
findIndex()
在 Internet Explorer 中不受支援。
JavaScript 陣列 findLast() 方法
ES2023 添加了 findLast() 方法,該方法將從陣列末尾開始,並返回滿足條件的第一個元素的值。
瀏覽器支援
findLast()
是一個 ES2023 功能。
自 2023 年 7 月起,所有現代瀏覽器均支援此功能。
Chrome 110 | Edge 110 | Firefox 115 | Safari 16.4 | Opera 96 |
2023 年 2 月 | 2023 年 2 月 | 2023 年 7 月 | 2023 年 3 月 | 2023 年 5 月 |
JavaScript 陣列 findLastIndex() 方法
findLastIndex() 方法查詢滿足條件的最後一個元素的索引。
瀏覽器支援
findLastIndex()
是一個 ES2023 功能。
自 2023 年 7 月起,所有現代瀏覽器均支援此功能。
Chrome 110 | Edge 110 | Firefox 115 | Safari 16.4 | Opera 96 |
2023 年 2 月 | 2023 年 2 月 | 2023 年 7 月 | 2023 年 3 月 | 2023 年 5 月 |