2

簡単に見えますが、jsonデータをjavascript配列にプッシュする前に、データをフィルタリングする方法を理解しようとするのに苦労しました。

//push data into javascript array [timestamp,value]
dataJSON2 = [];
for (i in parsed2) {

    if (parsed2[i].value == 'open' || parsed2[i].value == 'true'  ) {
        thevalue = 1;
    } else if (parsed2[i].value == 'closed' || parsed2[i].value == 'false' ) {
        thevalue = 0;
    } else {
        thevalue = parsed2[i].value;
    }
    dataJSON2.push( [ (parsed2[i].timestamp),
    parseFloat (thevalue) ] );

}

私が達成しようとしているのは、現在のthevalue変数が前の変数と同じである場合thevalue、データを破棄して、i別の値を返すまで次の変数に進むことです。ループを使用すれば簡単ですが、 forjson オブジェクトを ではなくプッシュする別の方法や、プッシュする前にfor..inフィルタリングi値を使用する方法がわかりません。

4

3 に答える 3

3
var dataJSON2 = [], previous;
for (i in parsed2) {
    if (parsed2[i].value === 'open' || parsed2[i].value === 'true'  ) {
        thevalue = 1;
    } else if (parsed2[i].value === 'closed' || parsed2[i].value === 'false' ) {
        thevalue = 0;
    } else {
        thevalue = parsed2[i].value;
    }
    if (previous === thevalue) continue;
    previous = thevalue;
    dataJSON2.push( [ (parsed2[i].timestamp), parseFloat (thevalue) ] );
}
于 2013-09-10T13:18:10.300 に答える