繁体   English   中英

Javascript数组搜索

[英]Javascript array search

什么是搜索javascript数组的最佳方法? 所有项目都是字符串。

它只是使用lastIndexOf吗? 像这样:

var list= [];
list.push("one");
list.push("two");
list.push("three");

if(list.lastIndexOf(someString) != -1)
{
    alert("This is already present in list");
    return;
}

它只是使用lastIndexOf吗?

是。 但是,如果您不需要向后显式搜索(如果您测试“不包含 ”则不需要indexOf() ,我会使用更简单的indexOf() )。 另请注意,这些方法在ES5中已标准化,需要在本机不支持它们的旧浏览器中进行填充。

对于较旧的浏览器支持,您仍应使用循环:

function inArray(arrToSearch, value) {
    for (var i=0; i < arrToSearch.length; i++) {
        if (arrToSearch[i] === value) {
            return true;
        }
    }

    return false;
};

你可以试试javascript find的build in array方法。 这是解决问题的最简单方法。 这是代码:

 var list = [], input = "two"; list.push("one"); list.push("two"); list.push("three"); function match(element){ return element == input; } if(list.find(match)){ console.log('Match found'); } 

var arr = ["one","two","three"];

Array.prototype.find = function(val){
    for(var i = 0; i < this.length; i++) {
        if(this[i] === val){
            alert("found");
            return;
        }
    }
    alert("not found");
}

arr.find("two");

应该适用于大多数旧版浏览器。

https://jsfiddle.net/t73e24cp/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM