indexOf()在JS中的應(yīng)用欲间,判斷字符串中包含某一個字符時非常有用勾邦,下面來試一試在數(shù)組中的應(yīng)用报破。這個小知識點源于最近的一次小DEMO跃须。
查找數(shù)組元素的位置
demo1 數(shù)組遍歷
function indexOf(arr, item) {
for (var i = 0; i < arr.length; i++) {
var val = arr[i];
if(item == val){
return i;
}
}
return -1;
}
上面是我給出的第一種方法,對數(shù)組進行遍歷球榆,然后通過判斷朽肥,返回相應(yīng)的索引
demo2 數(shù)組的indexOf()
function indexOf(arr, item){
return arr.indexOf(item);
}
只需要一行代碼,一個屬性就解決了持钉,這到底是什么神屬性
Array.prototype.indexOf()
描述:
indexOf 使用strict equality (無論是 ===, 還是 triple-equals操作符都基于同樣的方法)進行判斷 searchElement與數(shù)組中包含的元素之間的關(guān)系衡招。
demo3 indexOf() 兼容性改進
function indexOf(arr, item){
if(Array.prototype.indexOf){
return arr.indexOf(item)
} else {
for(var i=0; i<arr.length; i++){
if(arr[i] == item){
return i;
}
}
}
return -1;
}
使用indexOf
01 arr.indexOf(searchElement[, fromIndex = 0])
var array = [2, 5, 9];
console.log(array.indexOf(9)); //2
console.log(array.indexOf(7)); //-1
console.log(array.indexOf(9, 2));//2
console.log(array.indexOf(2, -1));//-1
console.log(array.indexOf(2, -3));//0
02 找出指定元素出現(xiàn)的所有位置
var indices = [];
var arrar2 = ['a','b','a','c','a','d'];
var element = 'a';
var idx = arrar2.indexOf(element);
while (idx != -1){
indices.push(idx);
idx = arrar2.indexOf(element, idx+1);
}
console.log(indices);
03 判斷一個元素是否在數(shù)組里,不在則更新數(shù)組
function updateArr(arr, item){
if(arr.indexOf(item) === -1){
arr.push(item);
console.log('更新數(shù)組' + arr);
} else if(arr.indexOf(item) > -1){
console.log(item + '在數(shù)組中存在');
}
}
var array3 = ['1', '2', '3'];
updateArr(array3, '1');
updateArr(array3, 1);