-1

次の形式の値を持つ配列を動的に作成したい

var dat1 = [
    { x: 0, y: 32.07  },
    { x: 1, y: 37.69  },
    { x: 2, y: 529.49 },
    { x: 3, y: 125.49 },
    { x: 4, y: 59.04  }
];

データ全体を動的に配列に格納したい。これらの値はjsonデータから取得しています。そして、配列をこの形式にしたい。どうすれば作成できますか?

私はこれを試しました:

$.each(r_data, function(key, val) {
    data1.push([{
        x : i,
        y : parseFloat(val.something)
    }]);
    i++;        
});

...しかし、私が望む結果は得られませんでした。

4

2 に答える 2

2

あなたが持っていると仮定して

var data1 = [];

...そしておそらく

var i = 0;

...コードの前に、コードは次の構造を生成します。

var data1 = [
    [ { x: 0, y: 32.07  } ],
    [ { x: 1, y: 37.69  } ],
    [ { x: 2, y: 529.49 } ],
    [ { x: 3, y: 125.49 } ],
    [ { x: 4, y: 59.04  } ]
];

各エントリが別のx配列である配列になったことに注意してください。この配列には、およびyプロパティを持つオブジェクトが含まれています。

私はあなたが欲しいと思う:

var data1 = [];
var i = 0;
$.each(resultBar_data, function(key, value) {
    data1.push({
        x : i,
        y : parseFloat(value.averagePrice)
    });
    i++;        
});

...これは、オブジェクトを追加の配列でラップせずに、オブジェクトを直接プッシュするだけです(プッシュされているものの周りdata1を削除したことに注意してください)。[]これらのエントリには次のようにアクセスします。

console.log("The first entry is "  + data1[0].x + "," + data1[0].y);
console.log("The second entry is " + data1[1].x + "," + data1[1].y);
于 2013-07-01T06:53:14.543 に答える
0

format はオブジェクトの配列です。次のコードでは、配列 [{x:i, y:parseFloat(value.averagePrice)}]をフォーマット配列にプッシュしようとしています。

$.each(resultBar_data, function(key, value) {
    format.push([{ /*array start*/
        x : i,
        y : parseFloat(value.averagePrice)
    }] /*array end*/
    );
    i++;        
    });

角括弧は配列を表すことに注意してください。

あなたの問題を解決するには、次のようにすべきだと思います:

/*i just removed the square brackets so that push now pushes an object, 
not an array with a single object*/
format.push({ 
        x : i,
        y : parseFloat(value.averagePrice)
    });

これがお役に立てば幸いです。さらに情報が必要な場合、または質問を誤解した場合は、お尋ねください!

于 2013-07-01T07:00:07.537 に答える