我有一些javascript数组,我在函数中附加并在函数运行后调用(数据库信息是对CouchDB的调用):
$(document).ready(function() {
my_array = [];
view_name = db_name+'/farms_by_name'
$db.view(view_name, {
success: function(data) {
console.log(data)
for (i in data.rows) {
console.log(data.rows[i]);
plot_name.push(data.rows[i].value.name);
my_array.push("0");
console.log(my_array)
console.log(my_array.length)
}
},
error: function(e) {
alert('Error loading from database: ' + e);
}
});
console.log(my_array);
console.log(my_array.length);
});
使用 firebug,我看到在函数中正确附加了数组,例如 console.log 返回的单个元素
my_array = ["0"]
my_array.length = 1
但是函数之后的console.log(首先出现在firebug日志中)显示:
my_array = [ ]
my_array.length = 1
在日志中检查时 my_array 显示:
[ ]
0 "0"
谁能向我解释这种行为并解释我应该如何正确附加数组,以便我可以在 db success 函数之外调用长度并正确循环它?
谢谢!