数组的索引方法:
- arr.indexOf(a,b) ===> 从数组开头向后查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置.
- arr.lastIndexOf(a,b) ===> 从数组末尾向前查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置.
- 两者返回的是所要查找的项的索引或者-1、不改变原数组
- 封装一个自己的indexOf方法的函数
var arr = [3,4,5,7,9,6,3,5];
console.log('原数组:',arr); // 原数组:[3,4,5,7,9,6,3,5]
// console.log(arr.indexOf(13,2)); // -1
// console.log(arr.indexOf(9,2)) // 4
// console.log(arr); // [3,4,5,7,9,6,3,5]
Array.prototype.myIndexOf = function(num,index){
let result = -1
for(var i=index;i<this.length;i++){
if(this[i] === num){
result = i
break
}
}
return result
}
console.log(arr.myIndexOf(13,2))
// console.log(arr.myIndexOf(9,2))
console.log(arr)
- 封装一个自己的lastIndexOf方法的函数
var arr = [3,4,5,7,9,6,3,5];
// console.log('原数组:',arr); // 原数组:[3,4,5,7,9,6,3,5]
/* console.log(arr.lastIndexOf(13,2)); // -1
console.log(arr.lastIndexOf(9,-2)) // 4
console.log(arr.lastIndexOf(9,2)) // -1
console.log(arr); // [3,4,5,7,9,6,3,5] */
Array.prototype.myLastIndexOf = function(num,index){
let result = -1
if(index >= 0){
for(var i=index;i>=0;i--){
if(this[i] === num){
result = i
break
}
}
}else{
for(var i=index;i<this.length;i++){
if(this[i] === num){
result = i
break
}
}
}
return result
}
console.log(arr.myLastIndexOf(13,2))
console.log(arr.myLastIndexOf(9,2))
console.log(arr.myLastIndexOf(9,-2))
console.log(arr)