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循环性价比高
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; }