朋友您好我想借助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')
我知道如何解决这个问题?你的所有建议都很明显。
答案 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);