實現indexOf

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;
}
相關文章
相關標籤/搜索