实现indexOf

Posted echo2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现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循环性价比高

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;
}

 

以上是关于实现indexOf的主要内容,如果未能解决你的问题,请参考以下文章

为 TypeList 实现 Loki IndexOf

js判断用户使用设备及移动端竖屏代码实现

实现indexOf

代码片段 - Golang 实现集合操作

你不知道的javaScript 之indexOf()

vue实现跨区域拖放