除了循环数组之外的东西?

时间:2014-07-08 15:04:32

标签: javascript

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

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

所以,我想要做的是,如果变量" line",则更改为数组中的四个元素中的任何一个"字符" (即1,2,3,4),那么该计划需要做一些具体的事情。

(数组可能比那个更大,数组中的元素可能在程序期间没有预先创建。)

4 个答案:

答案 0 :(得分:0)

if (characters.indexOf(line) >= 0) {
   // It's in the array
}

答案 1 :(得分:0)

使用Array.indexOf查看数组中是否有元素。如果它返回-1,那么该元素不在数组中。

var line = 0;
var chars = [1,2,3,4]

if (chars.indexOf(line) === -1) {
  console.log("Not there.");
} else {
  console.log("Array contains " + "'" + line + "'");

}

答案 2 :(得分:0)

目前还不是很清楚你想要做什么,但一个想法是使用一个对象而不是一个数组,这样你就可以更快地查找。如果你的“特定的东西”是一个函数,你甚至可以有一个对象,其中“特定的东西”是你对象中的一个函数。例如:

var characters = {
    1: function() { alert("hey there"); },
    2: function() { return 1 + 1; },
    3: function() { destroyTheWorld(); }
};

然后你可以这样做:

line = 1;
characters[line]();

答案 3 :(得分:0)

使用indexOf()在数组内搜索

http://www.w3schools.com/jsref/jsref_indexof_array.asp

它将返回数组内对象的位置,所以它意味着它就在那里,只需要对此进行一个可能的反应:

if(position = characters.indexOf(line)){
    //value contains the searched item...
    value = characters[position];
}else{
    //not there
}