如果陣列中存在 item,則返回元素在陣列中的位置,否則返回 -1

dingyu0064發表於2017-09-03

1.

function indexOf(arr,item) {
if(Array.prototype.indexOf()){
return i = arr.indexOf(item);
}else{
for (var i = 0; i < arr.length; i++) {
if (arr[i] == item){
return i;
}else{
return -1;
}
}
}
}
var array = [1,2,3,4,3];
console.log(indexOf(array, 3));

優點:考慮了程式碼的健壯性,ie9-不支援indexof的情況;
不足:只能輸出首個
學習:return 跳出迴圈,後面不執行;輸出直接console

2.
function indexOf(arr, item) {
     for ( var i=0;i<arr.length;i++){
         if (arr[i]===item){
             return i;
         }
     }
     return -1;
 }
 
3.
function indexOf(arr, item){
var storage = [];
var arr_len = arr.length;
for(var i = 0 ; i<arr_len; i++){
if(arr[i] == item)    {
storage.push(i);
}
}
if(storage == undefined){
storage = -1;
}
return storage.toString();
}
優點:把重複的都輸出來了

轉載於:https://www.cnblogs.com/QIQIZAIXIAN/p/7470520.html

相關文章