这个问题已经解决。

根据karuzo的回答,我完成了最终版本:

$['to'] = function ($a)
{
    $u = JSON.stringify(this); $w = this.typeof(); $x = $a.typeof();

    if ($x == 'Array')
    {
        if ($w == 'Object')
        {
            $y = []; this.keys().for(($l, $m, $n) =>
            {
                $y[$m] = [$l, this[$l]];
            });

            return $y;
        }

        else if ($w == 'Array')
        {
            return [].slice.call(this);
        }

        else if ($w == 'String')
        {
            return [this];
        };
    }

    else if ($x == 'Object')
    {
        if ($w == 'Object')
        {
            return this.to("").from({});
        }

        else if ($w == 'Array')
        {
            $y = {}; this.for(($l, $m, $n) =>
            {
                $l != {}._ ? $y[$m] = $l : null;
            });

            return $y;
        }

        else if ($w == 'String')
        {
            return {value: this};
        }
    }

    else if ($x == 'String')
    {
        if ($w == 'Object')
        {
            return JSON.stringify(this).replace(/\"([^(\")"]+)\":/g, '$1:');
        }

        else if ($w == 'Array')
        {
            return $u;
        }

        else if ($w == 'String' | $w == 'Number')
        {
            return this.toString();
        };
    }

    else
    {
        return this;
    };
}


该版本直接包含在代码所在的文件paxiom.js中。
上面的代码中使用的某些功能在库中。我知道这会吸引一些观众,因此,当库的版本#1完成时,它将在https://hbms.github.io/-/paxiom.js处可用。

最佳答案

你可以试试:

var obj = {a: "x", b: ["y"], c: {d: ["z"]}, e: [{f: "g"}]};

var objStr = JSON.stringify(obj).replace(/\"([^(\")"]+)\":/g,"$1:");

console.log(objStr);


输出:

{a:"x",b:["y"],c:{d:["z"]},e:[{f:"g"}]}

您可以eval()结果字符串:

var obj = eval(objStr)

10-08 04:13