我有一个包含以下内容的文本框 -
[[0,0],[1,0],[2,0],[3,0],[4,0],[5,1],[6,6]]
我需要能够将其转换为数组,格式与图形完全相同。我在下面尝试的代码不起作用,因为它没有在数组中的方括号。
/*****SIMPLE CHART*****/
var flashstring = document.getElementsByName('hfMessageHistory')[0].value;
var flash = new Array();
flash = flashstring.split(",");
for (a in flash) {
flash[a] = parseInt(flash[a], 10) || 0; // Explicitly include base as per Álvaro's comment
}
alert(flash);
function showTooltip(x, y, contents) {
jQuery('<div id="tooltip" class="tooltipflot">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y + 5,
left: x + 5
}).appendTo("body").fadeIn(200);
}
var plot = jQuery.plot(jQuery("#chartplace"),
[{ data: [flash], label: "Messages Sent", color: "#ff6c00" }], {
series: {
lines: { show: true, fill: true, fillColor: { colors: [{ opacity: 0.05 }, { opacity: 0.15 }] } },
points: { show: true }
},
legend: { position: 'nw' },
grid: { hoverable: true, clickable: true, borderColor: '#ccc', borderWidth: 1, labelMargin: 10 },
yaxis: { min: 0, max: 20 }
});
答案 0 :(得分:1)
避免代码的其他部分(不清楚你在问什么),你可以使用括号([])将字符串转换为数组:
var str = '[[0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 1], [6, 6]]'
var arr = [str];
答案 1 :(得分:1)
字符串是JSON。使用JSON.parse():
var flashstring = document.getElementsByName('hfMessageHistory')[0].value;
var flash = JSON.parse(flashstring);
答案 2 :(得分:1)
使用JSON.parse:
HTML:
<input type="text" id="text1" />
<button onclick="parse()">Parse</button>
JS:
$('#text1').val('[[0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 1], [6, 6]]');
function parse() {
try {
var parsed = JSON.parse($('#text1').val());
console.log(parsed);
} catch (e) {
console.log('parse failed. Check your input');
}
}