1. 程式人生 > >JS 數組位置方法 indexOf()和lastIndexOf()的理解

JS 數組位置方法 indexOf()和lastIndexOf()的理解

indexof cau log con use 索引 ons num 一個

var numbers = [1,3,5,7,9,4,3,2,1];
console.log(numbers.indexOf(5)); //從數組的0位開始查找 5 位於數組裏面的位置 輸出2

首先 理解一下 indexOf() 是從左往右查 參數“5” 位於數組的下標 所以這裏打印出 2


再看

var numArr = ["hehe","sss","ddada","haha","xixi"];
console.log(numArr.lastIndexOf("dadad")) dadad b不存在 輸出-1

console.log(numArr.lastIndexOf("haha")) 輸出3

為什麽看起來好像跟indexOf()沒什麽區別呢?? 我在修改一下

var numArr = ["hehe","sss","ddada","haha","haha","xixi"]; 此時 haha有兩個

我們在打印看看

console.log(numArr.lastIndexOf("haha")) 輸出4

這時輸出的就是4 為什麽呢?

因為 lastIndexOf()是找某個字符串在數組裏最後出現的哪一個的位置。


// var arr = [1,2,3,4,5,6,7,1]
// console.log(arr.lastIndexOf(7));//6 下標為6的位置
// lastIndexOf 是從右向左查某個指定的字符串在字符串中最後一次出現的位置(也就是從後往前查)


var arr = [1,2,3,4,5,6,7,1]
console.log(arr.lastIndexOf(7,4));//6 下標為6的位置

//4為查找的索引(也就是下標到4) 如數組裏1,2,3,4,5 因為7不在該索引裏 所以打印-1


再看!!!

// var arr = [1,2,3,4,5,5,6,7,1];
// console.log(arr.indexOf(5));//4 下標為4的位置
// console.log(arr.lastIndexOf(5));//5
// 這個時候兩個返回的索引值就不同了
// because: 前面已經說了indexOf是從前向後查 而lastIndexOf是從後向前查 但是二者返回索引都是從前開始數數和計算的

JS 數組位置方法 indexOf()和lastIndexOf()的理解