ai up,看看这个愚蠢的代码.我想传递字符串或数组并返回数据.这段代码确实有效,但很糟糕.您会建议什么作为删除重复并尽可能优化它的最佳方法?谢谢 :)
var getData = function (dataFile) {
var ajaxResponse = [],
loop,
i;
if(dataFile instanceof Array) {
loop = dataFile.length;
for(i = 0; i < loop; i++) {
$.ajax({
url: dataFile[i],
type: "post",
async: false,
dataType: "json",
success: function (data) {
ajaxResponse[i] = data;
}
});
}
}
else {
$.ajax({
url: dataFile,
type: "post",
async: false,
dataType: "json",
success: function (data) {
ajaxResponse = data;
}
});
}
return ajaxResponse;
}
Run Code Online (Sandbox Code Playgroud)
谢谢大家,我要考虑一下.如果我愿意,我可以将所有参数作为数组传递但是这会在其他地方引起我的问题.Basicaly我需要以与它们相同的方式获得返回值,即单个值或数组.要求的数据完全不同.我可以改变它,但不得不调查从长远来看哪种方式会更好.
如果我正确理解代码,这应该工作:
if(!(dataFile instanceof Array))
dataFile = [dataFile];
Run Code Online (Sandbox Code Playgroud)
即,如果它不是数组,则创建一个仅包含该项的数组.然后总是做循环,虽然在某些情况下它只有一次迭代.
我应该补充一点,你想看看你i在for循环中对变量的使用.您应该将声明更改为for(var i...,而不仅仅是for(i....引入不带var关键字的变量将始终使该变量成为全局变量.这意味着该循环很可能i在另一个函数中改变完全不同的for循环的值,并且你绝对不知道发生了什么.
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |