bugfix> javascript > 投稿

こんにちは友人JSON配列値の助けを借りてx-y座標の動的配列を作成したいのでJSON値以下

"data": [
  {
    "x_value": 1,
    "y_value": 1527116400
  },
  {
    "x_value": 43.45,
    "y_value": 1527030000
  },
  {
    "x_value": 43.95,
    "y_value": 1526943600
  },
  {
    "x_value": 43.95,
    "y_value": 1526857200
  },
  {
    "x_value": 44.05,
    "y_value": 1526598000
  },
  {
    "x_value": 44.25,
    "y_value": 1526511600
  },
  {
    "price": 44.1,
    "y_value": 1526425200
  },
  {
    "x_value": 44.3,
    "y_value": 1526338800
  },
  {
    "x_value": 44.25,
    "y_value": 1526252400
  }
]

以下のような私のJSコード

var data = null;
var array_data = response.sData.chart_data;
for (let index = 0; index < chart_data.length; index++) {
    data.push({ array_data[index].x_value, y: chart_data[index].y_value });
}

上記のコードを実行すると、次のようなエラーメッセージが表示されます。

TypeError: null is not an object (evaluating 'data.push')

どのようにこれを解決できますか?あなたのすべての提案はかなりのものです。

回答 1 件
  • コードでは Array.prototype.push() を使用できません  ブール var data = null;  変数..

    Array.prototype.map()を使用して、呼び出し配列内のすべての要素で提供された関数を呼び出した結果で新しい配列を作成することをお勧めします。

    コード例:

    const chart_data = [{"x_value": 1,"y_value": 1527116400},{"x_value": 43.45,"y_value": 1527030000},{"x_value": 43.95,"y_value": 1526943600},{"x_value": 43.95,"y_value": 1526857200},{"x_value": 44.05,"y_value": 1526598000},{"x_value": 44.25,"y_value": 1526511600},{"price": 44.1,"y_value": 1526425200},{"x_value": 44.3,"y_value": 1526338800},{"x_value": 44.25,"y_value": 1526252400}];
    const data = chart_data.map(coordinate => ({
      x: coordinate.x_value,
      y: coordinate.y_value
    }));
    console.log(data);
    
    

あなたの答え