1.先判断Array数组是否含有indexOf方法,若是有直接返回结果;若是没有则利用循环比较获得结果。数组
function indexOf(arr, item) { if(Array.prototype.indexOf) { return arr.indexOf(item); } var len = arr.length, i, idx = -1; for(i=0; i<len;i++) { if(item === arr[i]) { idx = i; break; } } return idx; }
2.思路和第一种方法同样,只是利用了Array.prototype.forEach方法循环,由于foreach没法break,因此可能没有for循环性价比高spa
function indexOf(arr, item) { if(Array.prototype.indexOf) { return arr.indexOf(item); } var len = arr.length, i, idx = -1; arr.forEach(function(v,k){ if(v === item && idx !== -1) { idx = k; } }) return idx; }