从另一个函数获取多个本地数组的最佳方法是什么。我正在做类似的事情。对于附加到函数的变量名“arr1 = f1()”,这些是否需要声明为local,“var arr1 = f1()”。
<script>
function ArrValues(arr){
var array=arr;
function f1(){
var ID=[];
ID=['grapes','peaches','plums'];
return ID
};
function f2(){
var Nam=[];
Nam=['car','motorcycle','tree'];
return Nam
};
function f3(){
var Num=[];
Num=['200','1000','350'];
return Num
};
if(array=='one' || array=='all'){ arr1=f1()};
if(array=='two' || array=='all'){ var arr2=f2()};
if(array=='three' || array=='all'){ var arr3=f3()};
gotIt(arr1,arr2,arr3)
}
function gotIt(arr1,arr2,arr3){
alert(arr1);
alert(arr2);
alert(arr3);
}
</script>
<div id="one" onclick="ArrValues(this.id)">one</div>
<div id="two" onclick="ArrValues(this.id)">two</div>
<div id="three"onclick="ArrValues(this.id)">three</div>
<div id="all"onclick="ArrValues(this.id)">all</div>
答案 0 :(得分:0)
那取决于。由于您将值直接传递给gotIt
,因此看起来您不需要全局,因此应该对所有值都var
。
那就是说,你的代码非常混乱,有点多余。试试这个:
function ArrValues(arr) {
var arr1 = arr=='one' || arr=='all' ? ['grapes','peaches','plums'] : [],
arr2 = arr=='two' || arr=='all' ? ['car','motorcycle','tree'] : [],
arr3 = arr=='three' || arr=='all' ? ['200','1000','350'] : [];
gotIt(arr1,arr2,arr3);
}
请注意,我给每个人一个空数组的默认值,否则你最终会得到未定义的变量。