【问题标题】:any alternative of firefox's toSource() functionFirefox 的 toSource() 函数的任何替代方案
【发布时间】:2011-09-11 13:00:35
【问题描述】:

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

二维数组转源示例:

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

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

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

【问题讨论】:

    标签: javascript json multidimensional-array


    【解决方案1】:

    您已将其标记为 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));
    

    【讨论】:

    • 但是对于像 IE
    • 包含json.org 的兼容层有什么问题?我添加了一个函数,用于转换带有数字的数组(递归)。
    • 你有这方面的原型函数吗?
    • 数组可以包含数字以外的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多