javascriptの配列についてお聞きします。csvデータ

Writer: admin Type: spinning Date: 2019-01-18 00:00
javascriptの配列についてお聞きします。csvデータから数値を入手し、また別の配列に格納したいのですが、not defindになってしまいます。格納したい変数をvarをつけずにグローバル変数にして関数外へ送れるようにしているのですが、やり方が間違っているのでしょうか。わかる方いらしたら教えてください。お願いいたします。/** csv読み込み */function getCSVFile() {var xhr = new XMLHttpRequest();xhr.onload = function() {createArray(xhr.responseText);};xhr.open("get", "./csvfile/sample2.csv", true);xhr.send(null);}getCSVFile();function createXMLHttpRequest() {var XMLhttpObject = null;XMLhttpObject = new XMLHttpRequest();return XMLhttpObject;}function createArray(csvData) {var tempArray = csvData.split("\n");var csvArray = new Array();for(var i = 0; i<tempArray.length;i++){csvArray[i] = tempArray[i].split(",");console.log(csvArray);}//alert(Number(csvArray[0][1]));//alert(Number(csvArray[0][2]));}/** 施設の位置情報 */var facilities = [{name: '江戸川区役所',address: '東京都江戸川区中央1-4-1',coordinate: [Number(csvArray[0][1]), Number(csvArray[0][2])],discription: "月?金 8:30?17:00"},{name: '江戸川保健所中央健康サポートセンター',address: '東京都江戸川区中央4-24?19',coordinate: [139.868285, 35.709729],discription: "月?金 8:30?17:00"}];共感した0###余計な記述を消して試してみましたが、特に問題無いように見えます。テストはサーバー経由で行っているでしょうか?Ajax絡みのページは、サーバー経由でテストしたほうが良いでしょう。------------なお、> 格納したい変数をvarをつけずにグローバル変数にして関数外へ送れるようにしている「非同期処理」と「変数」が同じ文脈に現れたら要注意です。この部分については現状のソースコードでは行われていないように見えますが、非同期処理でこれは、方法として不可能です。現状行っているようにコールバック関数を活用するか、Promiseやasync/awaitなどの新しい方法について調べてみてください。【参考】JavaScriptの同期、非同期、コールバック、プロミス辺りを整理してみる - Qiitahttps://qiita.com/YoshikiNakamura/items/732ded26c85a7f771a27非道な非同期処理を理解したい[JavaScript] - WebEnginehttp://web-engine.hatenadiary.com/entry/20180113/1515835835###「非同期処理」というものがあるのですね、勉強になりました。コールバックを使い、ローカル変数にならないようにしました。エラーは消えたのですが、上手くいっていません。もう少し勉強します。もし他のご指摘があればよろしくお願いいたします。var csvArray = new Array();var csvArray1 = new Array();var csvArray2 = new Array();function createArray(csvData) { var tempArray = csvData.split("\n"); for(var i = 0; i<tempArray.length;i++){ csvArray[i] = tempArray[i].split(","); csvArray1[i] = csvArray[i][1]; csvArray2[i] = csvArray[i][2];   }}/** 施設の位置情報 */var facilities = new Array();function markerset (createArray) {facilities = [ { name: '江戸川区役所', address: '東京都江戸川区中央1-4-1', coordinate: [Number(csvArray1[0]), Number(csvArray2[0])], discription: "月?金 8:30?17:00" }];return facilities;}

 

TAG