请参阅下面的代码。
graph_data = 30,, [.00, 3.20],, 'Driving',,10,, [3.20, 5.17],,'Off-Duty';
var numbersArray = graph_data.split(',,');
var sritems = [];
for(var i=0;i<numbersArray.length;i++){
var j = i;
var k = j+1;
var m = k+1;
sritems.push({
"x" : numbersArray[j],
"y" : numbersArray[k],
"label" : numbersArray[m]
});
i=m;
}
我想要下面的结果。
{x: 30, y:[.00, 3.20], label: "Driving"},{x: 10, y:[3.20, 5.17], label: "Off-Duty"}
我可以根据需要设置graph_data变量值。
答案 0 :(得分:0)
使用:
sritems.push({
"x": numbersArray[i],
"y": numbersArray[++i],
"label": numbersArray[++i]
});
这样您就不会需要j,k,m
。
目前,我相信您的代码会跳过一个值。
答案 1 :(得分:0)
您过度增加i
,因为您将其设置为正文中的m+1
,然后再次在1
循环标头中添加for
。
要将第一个字段中的字符串转换为数字,请使用parseInt
。要将字符串转换为第二个字段,请使用JSON.parse()
(但要确保数字是有效的JSON - 它们需要小数点前的数字)。要转换第三个字段中的字符串,请删除周围的引号。
graph_data = "30,, [0.00, 3.20],, 'Driving',,10,, [3.20, 5.17],,'Off-Duty'";
var numbersArray = graph_data.split(',,');
var sritems = [];
for (var i = 0; i < numbersArray.length; i += 3) {
var j = i;
var k = j + 1;
var m = k + 1;
sritems.push({
"x": parseInt(numbersArray[j], 10),
"y": JSON.parse(numbersArray[k]),
"label": numbersArray[m].trim().slice(1, -1) // Remove surrounding quotes
});
}
alert(JSON.stringify(sritems, 2));
&#13;
答案 2 :(得分:0)
det(B)