JavaScript Array lastIndexOf() 方法返回可以在數組中找到給定元素的最後一個索引,如果不存在,則返回 -1。
用法:
arr.lastIndexOf(searchElement, fromIndex)
這裏,arr
是一個數組。
參數:
lastIndexOf()
方法包含:
searchElement
- 要在數組中定位的元素。fromIndex
(可選)- 開始向後搜索的索引。默認情況下是數組長度 - 1.
返回:
- 如果元素至少出現一次,則返回數組中元素的最後一個索引。
- 返回-1如果在數組中找不到元素。
注意: lastIndexOf()
比較searchElement
數組的元素使用嚴格平等(類似於triple-equals 運算符或===
)。
示例 1:使用 lastIndexOf() 方法
var priceList = [10, 8, 2, 31, 10, 1, 65];
// lastIndexOf() returns the last occurance
var index1 = priceList.lastIndexOf(31);
console.log(index1); // 3
var index2 = priceList.lastIndexOf(10);
console.log(index2); // 4
// second argument specifies the backward search's start index
var index3 = priceList.lastIndexOf(10, 3);
console.log(index3); // 0
// lastIndexOf returns -1 if not found
var index4 = priceList.lastIndexOf(69.5);
console.log(index4); // -1
輸出
3 4 0 -1
注意:
- 如果從索引 < 0, index 是向後計算的。例如,-1表示最後一個元素,依此類推。
- 如果計算 index 即array.length + fromIndex < 0,-1被退回。
示例 2:查找元素的所有出現
function findAllIndex(array, element) {
indices = [];
var currentIndex = array.lastIndexOf(element);
while (currentIndex != -1) {
indices.push(currentIndex);
if (currentIndex > 0) {
currentIndex = array.lastIndexOf(element, currentIndex - 1);
} else {
currentIndex = -1;
}
}
return indices;
}
var priceList = [10, 8, 2, 31, 10, 1, 65, 10];
var occurance1 = findAllIndex(priceList, 10);
console.log(occurance1); // [ 7, 4, 0 ]
var occurance2 = findAllIndex(priceList, 8);
console.log(occurance2); // [ 1 ]
var occurance3 = findAllIndex(priceList, 9);
console.log(occurance3); // []
輸出
[ 7, 4, 0 ] [ 1 ] []
在這裏,if (currentIndex > 0)
添加語句,以便在索引處出現0不會給-1為了currentIndex - 1
.這將導致再次從後麵搜索,程序將陷入無限循環。
示例 3:查找元素是否存在 else 添加元素
function checkOrAdd(array, element) {
if (array.lastIndexOf(element) === -1) {
array.push(element);
console.log("Element not Found! Updated the array.");
} else {
console.log(element + " is already in the array.");
}
}
var parts = ["Monitor", "Keyboard", "Mouse", "Speaker"];
checkOrAdd(parts, "CPU"); // Element not Found! Updated the array.
console.log(parts); // [ 'Monitor', 'Keyboard', 'Mouse', 'Speaker', 'CPU' ]
checkOrAdd(parts, "Mouse"); // Mouse is already in the array.
輸出
Element not Found! Updated the array. [ 'Monitor', 'Keyboard', 'Mouse', 'Speaker', 'CPU' ] Mouse is already in the array.
相關用法
- JavaScript Array lastIndexOf()用法及代碼示例
- JavaScript Array length用法及代碼示例
- JavaScript Array fill()用法及代碼示例
- JavaScript Array flatMap()用法及代碼示例
- JavaScript Array isArray()用法及代碼示例
- JavaScript Array values()用法及代碼示例
- JavaScript Array entries()用法及代碼示例
- JavaScript Array includes()用法及代碼示例
- JavaScript Array find()用法及代碼示例
- JavaScript Array unshift()用法及代碼示例
- JavaScript Array pop()用法及代碼示例
- JavaScript Array shift()用法及代碼示例
- JavaScript Array some()用法及代碼示例
- JavaScript Array indexOf()用法及代碼示例
- JavaScript Array reverse()用法及代碼示例
- JavaScript Array flat()用法及代碼示例
- JavaScript Array forEach()用法及代碼示例
- JavaScript Array concat()用法及代碼示例
- JavaScript Array join()用法及代碼示例
- JavaScript Array constructor用法及代碼示例
注:本文由純淨天空篩選整理自 JavaScript Array lastIndexOf()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。