Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除了在数组中循环之外的其他东西?_Javascript - Fatal编程技术网

Javascript 除了在数组中循环之外的其他东西?

Javascript 除了在数组中循环之外的其他东西?,javascript,Javascript,我的问题是,如果某个变量等于数组中的任何元素,如何使程序执行某些操作?除了在整个阵列中循环外,还有其他更简单的方法吗 例如:假设有一个变量,line=0;和一个数组,字符=[1,2,3,4] 因此,我想做的是,如果变量“line”更改为数组“characters”(即1,2,3,4)中的四个元素中的任何一个,那么程序需要执行特定的操作 (数组可以比这个大很多,数组中的元素可能是在程序中创建的,而不是事先创建的。)用于查看数组中是否有元素。如果返回-1,则该元素不在数组中 var行=0; var

我的问题是,如果某个变量等于数组中的任何元素,如何使程序执行某些操作?除了在整个阵列中循环外,还有其他更简单的方法吗

例如:假设有一个变量,line=0;和一个数组,字符=[1,2,3,4]

因此,我想做的是,如果变量“line”更改为数组“characters”(即1,2,3,4)中的四个元素中的任何一个,那么程序需要执行特定的操作

(数组可以比这个大很多,数组中的元素可能是在程序中创建的,而不是事先创建的。)

用于查看数组中是否有元素。如果返回
-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循环呢?不,循环是最好的选择。一直这样做,直到出现性能问题为止。然后再回来问另一个问题。你为什么不想在数组中循环呢?先生们,看起来我们遇到了一个严重的
过早优化的问题
除了在整个数组中循环之外,还有其他更简单的方法吗?
你想知道数组中是否包含一个项目。如果不将其与每个值进行比较,则无法确保该值不在数组中。除非数组已排序,否则可以使用二进制搜索。