2011-09-11 25 views
1

私はdynarchカレンダーを使用しています。選択した日付範囲をfirefoxのtoSource()のように文字列に変換したいとします。firefoxのtoSource()関数の代替手段

ソースに2次元配列を変換する例:

[20110917, [20110920, 20110922], 20110923, [20110925, 20110926]] 

すぎる他のブラウザで同じ出力を得るために任意の代替..?

私はすでにjQuery 1.6.2ライブラリを使用しています。 私はこの機能を動作させるために他のライブラリや大きなスクリプトを望んでいません。

答えて

4

あなたはそれぞれテキスト(JSON表現)とデータにテキストにデータを変換するためJSON.stringifyJSON.parse方法をサポートmodern browsers、既にそれをタグ付け。あなたのケースでは

var arr = [20110917, [20110920, 20110922], 20110923, [20110925, 20110926]]; 

// yields: [20110917,[20110920,20110922],20110923,[20110925,20110926]] 
console.log(JSON.stringify(arr)); 

代替方法:

function arr_to_string(data) { 
    if (data instanceof Array) { 
     var arr = []; 
     for (var i=0; i<data.length; i++) { 
      arr.push(arr_to_string(data[i])); 
     } 
     return "[" + arr.join(",") + "]"; 
    } 
    // Warning: we expect all array elements to be digits, do not use this if the 
    // data can be a random string 
    return data; 
} 
console.log(arr_to_string(arr)); 
+0

が、IE <9またはそれから、私はJSONを含める必要があり、JSONをサポートしていない一部の古いブラウザのような他のブラウザのために。 jsですが、私は単純な解決策やスタンドアロンの代替機能が必要です。 –

+0

http://json.orgのcompatibiltyレイヤーを含めて何が問題になっていますか?配列を数値で再帰的に変換する関数を追加しました。 – Lekensteyn

+0

はい私は配列だけで作業しています.. –