16

私は今これをやろうとしていますが、連想配列(値)を文字で区切られた文字列に結合する「最もよく使われる」方法があるのだろうかと思います。

たとえば、私は

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

このオブジェクトの要素を結合した結果の文字列は、

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

それらを「、」文字で結合すると、何か考えはありますか? ありがとう!

4

3 に答える 3

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

PS:Object.valuesどこかに方法はありますが、標準ではありません。などの外部ライブラリもありますhashish

于 2012-05-18T20:42:33.053 に答える
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

于 2012-05-18T20:44:42.647 に答える
5

Object.mapなどの機能の実装Object.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]);、カウンターをインクリメントする代わりに実際に高速にできるようです。コメントを参照してください。

于 2012-05-18T20:47:03.037 に答える