3

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

4 に答える 4

5

それは単にlastIndexOfを使用するだけですか?

はい。indexOf()ただし、明示的に逆方向に検索する必要がない場合は、さらに単純に使用します(「含まれていない」をテストする場合は必要ありません)。また、これらのメソッドは ES5 で標準化されており、ネイティブでサポートされていない古いブラウザーではシミングする必要があることに注意してください。

于 2013-02-05T19:59:13.213 に答える
1

古いブラウザーをサポートするには、ループを使用する必要があります。

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

    return false;
};
于 2013-02-05T20:03:23.170 に答える
-1
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/

于 2015-05-29T22:58:01.407 に答える