0
arrデータがjson関数内でのみ使用できるのはなぜですか?最初のconsole.logがデータを返します.2番目の配列は空の配列ですか?私は最初の呼び出しを終了する必要がありますか何とか動的配列にコピーしますか?d3.jsonでグローバル配列が更新されない
var inputURL;
var start = "2016-09-01";
var end = "2016-09-06";
var arr = [];
var stock = ["AZN.L", "GOOGL", "AAPL"];
var arrayLength = stock.length;
for (var i = 0; i < arrayLength; i++) {
itern(stock[i]);
};
function itern (stock) {
inputURL = "http://query.yahooapis.com/v1/public/yql" +
"?q=select%20*%20from%20yahoo.finance.historicaldata%20" +
"where%20symbol%20%3D%20%22"
+ stock + "%22%20and%20startDate%20%3D%20%22"
+ start + "%22%20and%20endDate%20%3D%20%22"
+ end + "%22&format=json&env=store%3A%2F%2F"
+ "datatables.org%2Falltableswithkeys";
// Get the data
d3.json(inputURL, function (error, data) {
data.query.results.quote.forEach(function (d) {
d.date = parseDate(d.Date);
// console.log(d.date);
d.high = +d.High;
d.low = +d.Low;
arr.push({
company: stock,
date: d.date,
high: d.high,
low: d.low,
sortable: true,
resizeable: true
});
});
console.log(arr); //returns arr with data
});
console.log(arr); // returns arr[]
};
結果が最初にconsole.log、まだデータがありませんグローバル配列と同じです。各反復後にデータを外部のデータベースに取り込むことはできますか? – user3359706
答えは、在庫配列が完全に消費されたときに実行するコードをd3.json関数の中に追加することと実際には違いはありません。私はデータをグローバルにアクセス可能な配列にすることを目指していました。私はWebサービスを使ってやり直します。ありがとうございました – user3359706