0

次のように定義した文字列変数があります。

var regn="[1,75],[2,59],[3,66],[4,92],[5,67],[6,77],[7,75],[8,80],[9,67],[10,56],[11,67],";

また、配列内の値を取り、それらの値から折れ線グラフを描画する JavaScript コードを使用しています。コードの一部を以下に示します。

    var graphData = [{
        data: [[1,75],[2,59],[3,66],[4,92],[5,67],[6,77],[7,75],[8,80],[9,67],[10,56],[11,67],],
        color: '#77b7c5',
        points: { radius: 4, fillColor: '#77b7c5' }
    }
];

配列内のデータを上で定義した変数に置き換えようとしていますが、そうするとグラフが機能しません。これは私のコードです:

var graphData = [{
        data: [regn],
        color: '#77b7c5',
        points: { radius: 4, fillColor: '#77b7c5' }
    }
];

どこが間違っているのか、または文字列内のデータをその配列に取得するにはどうすればよいですか?

4

4 に答える 4

4

最初に文字列を解析する必要があります。これは通常、以下を使用して行われJSON.parseます。

var regn="[[1,75],[2,59],[3,66],[4,92],[5,67],[6,77],[7,75],[8,80],[9,67],[10,56],[11,67]]";
var arr = JSON.parse(regn) // now it's an Array

サポートしていないブラウザをサポートする必要がある場合は、JSON3JSON.parseを使用してこれにパッチを当てることができます

余談: それに加えて、regn の末尾にはコンマがあり、or で囲む必要があることに注意してください[]({}オブジェクト アプローチでもキーが必要になるため、ここでは配列を使用します)、有効な JSON ではありません。あなたが投稿した方法(これが偶然に起こったかどうかはわかりません)。

于 2013-04-15T13:20:03.853 に答える
0
  1. regn を '],[' で分割します。
  2. 各チャンクから数字とカンマ以外を取り除く
  3. 各チャンクを ',' で分割し、2 チャンクに制限
  4. 終わり!

var parseRegn = function (regnStr) {  

    var pairs = regnStr.split('],['),                 // 1
        pairStr = '';

    for (var i = 0; i < pairs.length; i++) {

        pairStr = pairs[i].replace(/[^\d|,]/g, '');   // 2

        if (pairStr.length > 0) {
            pairs[i] = pairStr.split(',', 2);         // 3
        }
    }
    return pairs;                                     // 4
};

于 2013-04-16T06:41:54.343 に答える
0

代わりに

var regn="[1,75],[2,59],[3,66],[4,92],[5,67],[6,77],[7,75],[8,80],[9,67],[10,56],[11,67],"

これを試して、

var regn=[[1,75],[2,59],[3,66],[4,92],[5,67],[6,77],[7,75],[8,80],[9,67],[10,56],[11,67]];

var graphData = [{
            data: regn,
            color: '#77b7c5',
            points: { radius: 4, fillColor: '#77b7c5' }
        }
    ];
于 2013-04-15T13:45:25.057 に答える