为什么String([1,2])==“1,2”而不是“[1,2]”?

时间:2013-07-25 20:14:24

标签: javascript arrays string

我想要做的是改变数组,比如说,

[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]“?
谢谢!

3 个答案:

答案 0 :(得分:5)

你想要一个JSON字符串:

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

看到这个问题:

Convert JS object to JSON string

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

答案 1 :(得分:1)

如果您不担心与其他代码冲突,可以更改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]"

答案 2 :(得分:0)

如果您不想使用json,我很确定您可以创建一个简单的方法来执行此操作, 以下内容:

(function toBracketedString(arr) {
     if (!_.isArray(arr)) { return ""; }
     var base = "[";

     for (var element in arr){
         base.append(","+element.toString());
     }
     base.append("]");
});

希望这有帮助