私は今これをやろうとしていますが、連想配列(値)を文字で区切られた文字列に結合する「最もよく使われる」方法があるのだろうかと思います。
たとえば、私は
var AssocArray = { id:0, status:false, text:'apple' };
このオブジェクトの要素を結合した結果の文字列は、
"0, false, 'apple'" or "0, 0, 'apple'"
それらを「、」文字で結合すると、何か考えはありますか? ありがとう!
私は今これをやろうとしていますが、連想配列(値)を文字で区切られた文字列に結合する「最もよく使われる」方法があるのだろうかと思います。
たとえば、私は
var AssocArray = { id:0, status:false, text:'apple' };
このオブジェクトの要素を結合した結果の文字列は、
"0, false, 'apple'" or "0, 0, 'apple'"
それらを「、」文字で結合すると、何か考えはありますか? ありがとう!
Object.keys(AssocArray).map(function(x){return AssocArray[x];}).join(',');
PS:Object.values
どこかに方法はありますが、標準ではありません。などの外部ライブラリもありますhashish
。
配列をループするだけです。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
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]);
、カウンターをインクリメントする代わりに実際に高速にできるようです。コメントを参照してください。