2

私はjavascriptを初めて使用しますが、基本的に配列を作成してプロット変数に渡すことができるように、コードをループする方法を理解するのに苦労しています。

どこから始めたらいいのかよくわかりません。現在、最初のデータセット(dataOne)を取得し、それをプロット変数に入れることができるようにフォーマットするコードのチャンクがあります。基本的に、他のデータセットに対してさらに3回実行する必要があります。何らかの方法でループするexample.getDataSets関数を含めることを望んでいます。

これを行う良い方法はありますか?

これが私のコードです:

script.js

var example = {};

example.data = {
    dataOne: {data: [{"date":1333238400000,"data":23},{"date":1333324800000,"data":37},{"date":1333411200000,"data":49},{"date":1333497600000,"data":54},{"date":1333584000000,"data":30},{"date":1333670400000,"data":19},{"date":1333756800000,"data":15},{"date":1333843200000,"data":19},{"date":1333929600000,"data":145}],
    dataTwo: {data: [{"date":1335830400000,"data":63},{"date":1335916800000,"data":77},{"date":1336003200000,"data":66}],
    dataThree: {data: [{"date":1341100800000,"data":24},{"date":1341187200000,"data":50},{"date":1341273600000,"data":43},{"date":1341360000000,"data":39},{"date":1341446400000,"data":56},{"date":1341532800000,"data":66}],
    dataFour: {data: [{"date":1333238400000,"data":71},{"date":1333324800000,"data":46},{"date":1333411200000,"data":66},{"date":1333497600000,"data":73},{"date":1333584000000,"data":105},{"date":1333670400000,"data":84}]}
}

example.getDataSets = function(){
    return ['dataOne', 'dataTwo', 'dataThree', 'dataFour']
}

example.getSeries = function(month){
    return example.data[month]
}

example.processData = function(data){
    var newData = []
    for(var i = 0; i < data.length; i++){
        newData.push([data[i].date, data[i].data])
    };
    return newData;
}

HTMLページの私のスクリプト:

$.getScript("script.js")
    .done(function() {

    var b = example.getSeries('dataOne');
    var d = example.processData(b.data);
    // first correct the timestamps - they are recorded as the daily
    // midnights in UTC+0100, but Flot always displays dates in UTC
    // so we have to add one hour to hit the midnights in the plot
    for (var i = 0; i < d.length; ++i)
      d[i][0] += 60 * 60 * 1000;

    var plot = $.plot($("#placeholder"), [d] , options);

どんな提案でも大歓迎です!

4

2 に答える 2

0

試す

var d = example.processData(b);

なので

console.log('b')

datab 変数に)もログに記録されませんが、文字列:-)

于 2012-09-19T19:17:18.887 に答える
0

変数に格納されているオブジェクトではなく、文字列リテラル'b'を渡します。そのはずですexample.processDatab

var d = example.processData(b);

またexample.getSeries、配列ではなくオブジェクトを返します。配列はdataオブジェクトのプロパティにあります。

また、データには構文エラーがあり]}、最初の3つのオブジェクトの配列の最後にありません。

于 2012-09-19T19:17:28.777 に答える