为什么字符串([1,2])==“;1,2”;而不是“;[1,2]”;

Why does String([1,2])=="1,2" and not "[1,2]"?

本文关键字:为什么 字符串      更新时间:2023-09-26

我想做的是更改一个数组,比如

[1,2,[3,4],17.5]

像一样刺痛

"[1,2,[3,4],17.5]"

但不像

"1,2,3,4,17.5"

即保留所有的括号。我试着使用内置的String()函数,但这给了我"1,2,3,4,17.5"。有没有内置的函数或代码片段可以用来获得"[1,2,[3,4],17.5]"
谢谢

您想要一个JSON字符串:

array = [1,2,[3,4],17.5];
JSON.stringify( array );

请参阅此问题:

将JS对象转换为JSON字符串

不适用于IE 7及更低版本!

如果您不担心与其他代码段发生冲突,您可以更改Array.prototype.toString

(function () {
    var arrayString = Array.prototype.toString;
    Array.prototype.toString = function toString() {
        return '[' + arrayString.call(this) + ']';
    }
}());
[1,2,[3,4],17.5].toString();
// "[1,2,[3,4],17.5]"

如果您不想使用json,我相信您可以创建一个简单的方法来实现这一点,以下内容:

(function toBracketedString(arr) {
     if (!_.isArray(arr)) { return ""; }
     var base = "[";
     for (var element in arr){
         base.append(","+element.toString());
     }
     base.append("]");
});

希望这能帮助