如何在反应原生中创建具有x y坐标的动态数组

时间:2018-05-25 10:53:14

标签: javascript arrays loops react-native

朋友您好我想借助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不是对象(评估'data.push')

我知道如何解决这个问题?你的所有建议都很明显。

1 个答案:

答案 0 :(得分: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);