将文本框字符串转换为javascript数组

时间:2014-09-07 15:06:10

标签: javascript jquery arrays

我有一个包含以下内容的文本框 -

  

[[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 }
               });

3 个答案:

答案 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');
    }
 }

JSFIDDLE