我有一个javascript问题让我完全疯了。我有一组数据,我正在使用jQuery .each()方法迭代。在.each()回调函数中,我正在推送数组上的数据。这是代码。
var p = procedure_tool.all();
previousValue = -1;
var proceduresArray = [];
p.each(function(d, proceduresArray) {
proceduresArray.push(d.procedureID);
});
我也试过使proceduresArray全局(前面没有var),然后尝试不通过匿名函数传递它。
var p = procedure_tool.all();
previousValue = -1;
proceduresArray = [];
p.each(function(d) {
proceduresArray.push(d.procedureID);
})
数据确实存在(回调内的警报显示正常)。有任何想法吗?我觉得这是一个范围问题,但我认为全局化数组会修复它。
由于
答案 0 :(得分:3)
两件事,
1-您无需将proceduresArray传递给匿名函数。
2- .each()中的匿名函数传递了2个东西。第一个是元素的索引,第二个是元素。即callback(indexInArray, valueOfElement)
http://http://api.jquery.com/jQuery.each/
这应该可以正常工作:
var p = procedure_tool.all();
previousValue = -1;
var proceduresArray = [];
p.each(function(i, d) {
proceduresArray.push(d.procedureID);
});
另一个例子:
var p = $('div');
var pArray = [];
p.each(function(i, el)
{
pArray.push(el);
});
console.log(pArray);
请记住,也可以使用匿名函数中的this
来访问该值。