JavaScript 数组搜索
数组查找和搜索方法
JavaScript 数组 indexOf()
The 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 数组 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 不同)。
语法
array.includes(search-item)
Array.includes() 允许检查 NaN 值。与 Array.indexOf() 不同。
浏览器支持
includes()
是 ECMAScript 2016 功能。
ES 2016 自 2017 年 3 月起在所有现代浏览器中得到完全支持
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 数组 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 月 |
Internet Explorer 不支持 find()
。
JavaScript 数组 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 月 |
Internet Explorer 不支持 findIndex()
。
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 月 |