【发布时间】:2014-03-31 14:44:31
【问题描述】:
我多次调用的函数出现问题。每次我调用它时,它都应该接收新数据(即使它与之前相同),但不知何故,下一次调用该函数将导致第一次调用该函数时的预期输出。
代码:
$.calc=function(arrayName){
console.log(arrayName);
for(i=0;i<arrayName.length;i++){
if(i==2){
arrayName[i]="";
}
}
}
var arr=new Array();
arr[0]="saab";
arr[1]="saab";
arr[2]="saab";
arr[3]="saab";
arr[4]="volvo";
arr[5]="volvo";
//First run
$.calc(arr);
//Second run
$.calc(arr);
如果您运行代码 (http://jsfiddle.net/76bme/) 并打开控制台记录器/devtools,您可以看到我正在打印出与函数一起传递的数组的内容,然后再对数组进行任何操作。 下次调用该函数时,我将与第一次调用该函数时相同的数组 (arr) 传递给该函数,因此我希望开头的 console.log 从数组中打印出相同的内容。但是现在该数组保留了之前的所有内容,除了在索引 2 处,我在使用 console.log 将其打印出来之后将其修改为“”。如果是相反的方式,我会得到它(在for循环之后有console.log)但现在我很困惑!?
那我做错了什么?
【问题讨论】:
-
我在控制台中运行了它,它运行良好。
-
我收到
["saab", "saab", "saab", "saab", "volvo", "volvo"] ["saab", "saab", "", "saab", "volvo", "volvo"] -
@Seiyria:我希望这两个调用的输出相同,例如:["saab", "saab", "saab", "saab", "volvo", "volvo"] ["saab", "saab", "saab", "saab", "volvo", "volvo"] 对于我的头脑,我用相同的参数调用函数,如果不是,我需要了解我是如何不这样做:/
标签: javascript jquery arrays function