看起来很简单,但是我有点想尝试在将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 var与先前的thevalue相同,则它将丢弃数据并转到下一个i,直到返回不同的值。
如果使用for循环会很容易,但是我不知道使用其他方法来推送json对象而不是for..in,也不会在推送之前使用过滤i值。

最佳答案

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) ] );
}

07-28 10:35