是否可以在创建函数(等)时创建for循环?只是为了减少硬编码,因为我在数组中有很多值。我在这里有我的代码而且它没有用。
var obj=["backupF31","backupF32","backupF33","backupF34","backupF35"];
for (var i = 0; i < obj.length; i++) {
function obj[i] ()
{
var data = {};
$.ajax({type: 'POST', data: JSON.stringify(data), contentType: 'application/json',
url: '/legone/survey/'+obj[i]+'',
success: function(data) {
}
});
alert("Sucessful backup on "+obj[i]+");
}
}
&#13;
从上面的代码中,我只想在obj [i]中插入数组的值谢谢
答案 0 :(得分:1)
我不确定你要在这里实现什么,但是如果你想创建一个后来调用的函数列表,这段代码可能会帮助你开始:
var obj=["backupF31","backupF32","backupF33","backupF34","backupF35"];
var functions = obj.map(function(key) {
return function(data) {
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: 'application/json',
url: '/legone/survey/'+key+'',
success: function(response) {
data[key] = response
}
});
alert("Sucessful backup on "+obj[i]+");
}
}
var data = {};
functions.forEach(function(f) {
f(data);
});
如果这不是您想要的,请评论:)
答案 1 :(得分:1)
这可能是你想做的事情的一种方式:
function doThing(message)
{
var data = {};
$.ajax({type: 'POST', data: JSON.stringify(data), contentType: 'application/json',
url: '/legone/survey/'+message+'',
success: function(data) {
}
});
alert("Successful backup on "+message+".");
}
var obj=[doThing.bind(null, "backupF31"), doThing.bind(null, "backupF32"),
doThing.bind(null, "backupF33"), doThing.bind(null, "backupF34"),
doThing.bind(null, "backupF35")];
for (var thisObj of obj) {
thisObj();
}
bind()
使用预定义的参数创建一个函数调用,因此您可以在创建函数指针数组时捕获不同的参数。