javascript - 高效地处理 Javascript 中的数组

标签 javascript arrays

嗨,我有 3 个 javascript 数组,当单击 3 个可用按钮之一时,需要在函数中传递这些数组(每个数组一个按钮)

     <button onclick="call(1)">Array1</button> 
        <button onclick="call(2)">Array2</button> 
        <button onclick="call(3)">Array3</button> 

        JS-
        var arr1 = ["s","o","m","e"];
        var arr2 =[];
        var arr3 =[];

        function call(x){
           // some code here
             if(x==1){
             another_func(arr1);
        }
             else if(x==2){
             another_func(arr2);
        }
             else if(x==3){
              another_func(arr3);
        }

        }

这工作正常,但我希望摆脱 if else 循环。由于数组名称仅因数字“x”而不同(x 在单击时由按钮传递),我尝试了 -

 function call(x){
               // some code here
                 var apple="arr"+x;

                 another_func(apple);
       }

但这变得困惑了。我知道原因是因为 javascript 是松散类型语言,它将后一个参数解释为字符串而不是数组。

有人可以建议我应该如何进行吗?

最佳答案

也许你可以使用临时数组:

var arr1 = ['f', 'i', 'r', 's', 't'];
var arr2 = ["s", "e", "c", "o", "n", "d"];
var arr3 = ["t", "h", "i", "r", "d"];
var temp = [arr1, arr2, arr3];//work around
var call = function(x) {
  alert('Array >> ' + temp[x - 1]); // -1 to get the index
};
<button onclick="call(1)">Array1</button>
<button onclick="call(2)">Array2</button>
<button onclick="call(3)">Array3</button>

或者,您可以选择临时对象:

var arr1 = ['f', 'i', 'r', 's', 't'];
var arr2 = ["s", "e", "c", "o", "n", "d"];
var arr3 = ["t", "h", "i", "r", "d"];
var temp = {
  '1': arr1,
  '2': arr2,
  '3': arr3
}; //work around
var call = function(x) {
  alert('Array >> ' + temp[x]);
};
<button onclick="call(1)">Array1</button>
<button onclick="call(2)">Array2</button>
<button onclick="call(3)">Array3</button>

关于javascript - 高效地处理 Javascript 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31580247/

相关文章:

javascript - 在 JavaScript 中深度克隆对象的最有效方法是什么?

javascript - AngularJS:数组之间的数据绑定(bind)

c++ - 在函数中填充指针数组

javascript - 如何防止 signalR 错误停止进一步执行 javascript

javascript - 使用javascript找到一个国家的经度和纬度边界框?

javascript - 基本 jQuery : Can't get an appropriate result using 'this'

ruby - 数组中的字母顺序,顶部有多个默认值

Python 类与 numpy 数组求和

iphone - 如何连续获得不两次相同的数组值

javascript - 如何使用 jQuery 获取 asp.net 列表框的大小