如何将关联数组连接到字符串中

时间:2012-05-18 20:40:27

标签: javascript string join associative-array

我现在正尝试这样做,我想知道是否有一个“最常用”的方法将一个关联数组(它的值)连接成一个字符串,由一个字符分隔。

例如,我有

var AssocArray = { id:0, status:false, text:'apple' };

加入此对象的元素所产生的字符串将是

"0, false, 'apple'" or "0, 0, 'apple'"

如果我们用“,”字符加入他们 任何的想法?谢谢!

3 个答案:

答案 0 :(得分:21)

Object.keys(AssocArray).map(function(x){return AssocArray[x];}).join(',');

PS:某处有Object.values方法,但它不是标准。还有外部库,如hashish

答案 1 :(得分:9)

只需循环遍历数组。 JavaScript中的任何数组都有索引,甚至是关联数组:

    var AssocArray = { id:0, status:false, text:'apple' };
    var s = "";
    for (var i in AssocArray) {
       s += AssocArray[i] + ", ";
    }
    document.write(s.substring(0, s.length-2));

将输出:0, false, apple

答案 2 :(得分:5)

仍在讨论Object.mapObject.forEach等功能的实现。现在,你可以坚持这样的事情:

function objectJoin(obj, sep) {
    var arr = [], p, i = 0;
    for (p in obj)
        arr[i++] = obj[p];
    return arr.join(sep);
}

编辑:使用临时数组并加入它而不是字符串连接以提高性能。

编辑2 :在大多数最近的浏览器中,似乎arr.push(obj[p]);而不是递增计数器实际上可以更快。见评论。