0

SmartTV アプリの開発に Samsung Tizen SDK を使用しています。CSV を Javascript オブジェクトに変換するコードがいくつかあります。コードから作成されたオブジェクトのキーの 1 つにアクセスできません。

コード:

function csvJSON(csv) {

var lines = csv.split("\n");

var result = [];

var headers = lines[0].split(",");

for (var i = 1; i < lines.length; i++) {


    var obj = {startTime:'',
            endTime:'',
            day:''};

    var currentline = lines[i].split(",");

    for (var j = 0; j < headers.length; j++) {
        obj[headers[j]] = currentline[j];
    }

    result.push(obj);

}

return result; // JavaScript object

}

この関数への入力は次のよう になります。 関数への入力

コンソール開発者モード (obj.endTime のローカル ウォッチを設定) で戻り値の行をデバッグしている間、デバッガーに表示されているにもかかわらず、endTime キーにアクセスできません。まるで特別なキャラクターが何らかの形で関与しているかのようです。

endTime キー

jsFiddle で同じコード スニペットを試してみたところ、うまくいきました。Tizen Emulator で実行されている Javascript/ECMAScript のバージョンに関連するもののようです。おそらく、これは以前のバージョンの Javascript の問題でしたか?

ありがとう!

4

1 に答える 1

0

私はendTimeあなたのcsvヘッダーが本当に等しいことを確認しますendtime、つまり

endTime1 = 'endTime'
endTime2 = '\uff45ndTime'
console.log(`${endTime1} equals ${endTime2} is ${endTime1 === endTime2}`)
// endTime equals endTime is false

obj = {}
obj[endTime1] = 'endTime1'
obj[endTime2] = 'endTime2'
console.log(obj)
// {
//   "endTime": "endTime1",
//   "endTime": "endTime2"
// }

これにライブラリを使用しない理由はありますか? 例: http://papaparse.com/docs#csv-to-json

于 2017-03-20T08:52:23.623 に答える