firefox的toSource()函数的任何替代品

时间:2011-09-11 13:00:35

标签: javascript json multidimensional-array

我正在使用dynarch日历,我希望将选定的日期范围转换为字符串,就像firefox的toSource()一样。

将二维数组转换为源的示例:

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

在其他浏览器中获得相同输出的任何替代方案.. ???

我已经在使用jQuery 1.6.2库了。 所以,我不希望任何其他库或更大的脚本让这个功能起作用。

1 个答案:

答案 0 :(得分: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));