関数内に追加し、関数の実行後に呼び出すjavascript配列があります(db情報は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関数の外で正しくループできるように配列を正しく追加する方法を説明できますか?
ありがとう!