在 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;
}
在 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;
}
对于较旧的浏览器支持,您仍应使用循环:
function inArray(arrToSearch, value) {
for (var i=0; i < arrToSearch.length; i++) {
if (arrToSearch[i] === value) {
return true;
}
}
return false;
};
您可以尝试 javascript 的内置数组方法find
。这是解决您的问题的最简单方法。这是代码:
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");
应该在大多数较旧的浏览器中工作。