参数是:
数据:对象数组。
anonFunction:一个函数,其参数与来自数据的对象的参数相同。
目标:
它将遍历数据,并每次都使用新参数触发 anon 函数。
想法/尝试:
function special(data, executeFunction){
var callback = function(){
if(executeFunction){
executeFunction();
}
}
var d = JSON.parse(data);
for( var i = 0; i < d.length; i++){
var object = d[i];
callback(object);
}
}
这样看起来对吗?我能看到的唯一问题是对象已序列化。所以我只需要按顺序传递项目的值。可以通过某种方式完成的数字。我不知道。 :(
如你所见,我有一些差距。
编辑:一些示例数据:
data = [{"url": "google.com", "type":"POST"}, {"url":"yahoo.com","type":"GET"}]
它将分解为对 url 和类型的迭代。 我会将其传递给:
anonFunction(a,b){
$.ajax({url:a, type:b});
}
因此,在使用列表和非函数执行我的函数后,它会使用我的示例向 google 和 yahoo 发出请求。
编辑2:
函数看起来像什么:
//given data from above.
special(data, function(a,b){
$.ajax({url:a, type:b});
});
最佳答案
您定义的回调
函数不接受任何参数。稍后,您将对象传递给它,但它不会对其执行任何操作。
不过,我认为您过于复杂了。你只需要这样的东西:
function special(data, callback){
if(!callback) return;
var d = JSON.parse(data);
for( var i = 0; i < d.length; i++){
callback(d[i]);
}
}
special(data, $.ajax);
作为奖励,在 Coffeescript 中,这就像:
$.ajax(settings) for settings in JSON.parse(data)
:)
关于javascript - 创建一个接受对象列表的函数和一个通过它们的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607022/