2011-09-11 97 views
1

我使用的是dynarch日曆,我希望將選定的日期範圍轉換爲像firefox的toSource()那樣的字符串。firefox的toSource()函數的任何替代

轉換的二維陣列成源的實施例:

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

任何替代以獲得在其他瀏覽器本相同的輸出太.. ???

我已經在使用jQuery 1.6.2庫。 因此,我不希望任何其他庫或更大的腳本來獲得此功能。

回答

4

你標記它已經,modern browsers支持JSON.stringifyJSON.parse方法分別數據轉換爲文本(JSON格式)和文本數據。

你的情況:

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的兼容層有什麼問題?我添加了一個用數字轉換數組的函數(遞歸)。 – Lekensteyn

+0

是的我只與數組一起工作.. –