嗨,我有 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/