Javascript 除了在数组中循环之外的其他东西?
我的问题是,如果某个变量等于数组中的任何元素,如何使程序执行某些操作?除了在整个阵列中循环外,还有其他更简单的方法吗 例如:假设有一个变量,line=0;和一个数组,字符=[1,2,3,4] 因此,我想做的是,如果变量“line”更改为数组“characters”(即1,2,3,4)中的四个元素中的任何一个,那么程序需要执行特定的操作 (数组可以比这个大很多,数组中的元素可能是在程序中创建的,而不是事先创建的。)用于查看数组中是否有元素。如果返回Javascript 除了在数组中循环之外的其他东西?,javascript,Javascript,我的问题是,如果某个变量等于数组中的任何元素,如何使程序执行某些操作?除了在整个阵列中循环外,还有其他更简单的方法吗 例如:假设有一个变量,line=0;和一个数组,字符=[1,2,3,4] 因此,我想做的是,如果变量“line”更改为数组“characters”(即1,2,3,4)中的四个元素中的任何一个,那么程序需要执行特定的操作 (数组可以比这个大很多,数组中的元素可能是在程序中创建的,而不是事先创建的。)用于查看数组中是否有元素。如果返回-1,则该元素不在数组中 var行=0; var
-1
,则该元素不在数组中
var行=0;
var chars=[1,2,3,4]
if(字符索引of(行)=-1){
console.log(“不在那里”);
}否则{
log(“数组包含“+”+行+”);
}
目前还不清楚您到底想做什么,但有一个想法是使用对象而不是数组,这样您可以更快地查找。如果您的“特定对象”是一个函数,您甚至可以拥有一个对象,其中“特定对象”是您对象中的一个函数。例如:
var characters = {
1: function() { alert("hey there"); },
2: function() { return 1 + 1; },
3: function() { destroyTheWorld(); }
};
然后你可以这样做:
line = 1;
characters[line]();
if(position = characters.indexOf(line)){
//value contains the searched item...
value = characters[position];
}else{
//not there
}
使用indexOf()在数组内搜索
它将返回数组中对象的位置,因此它意味着存在,只需要压缩,可能如下所示:
line = 1;
characters[line]();
if(position = characters.indexOf(line)){
//value contains the searched item...
value = characters[position];
}else{
//not there
}
为什么你不想使用for循环呢?不,循环是最好的选择。一直这样做,直到出现性能问题为止。然后再回来问另一个问题。你为什么不想在数组中循环呢?先生们,看起来我们遇到了一个严重的
过早优化的问题除了在整个数组中循环之外,还有其他更简单的方法吗?
你想知道数组中是否包含一个项目。如果不将其与每个值进行比较,则无法确保该值不在数组中。除非数组已排序,否则可以使用二进制搜索。