I am trying to do this now and I wonder if there is a "the most used" method to join an associative array (it's values) into a string, delimited by a character.
For example, I have
var AssocArray = { id:0, status:false, text:'apple' };
The string resulted from joining the elements of this object will be
"0, false, 'apple'" or "0, 0, 'apple'"
if we join them with a "," character Any idea? Thanks!
Object.keys(AssocArray).map(function(x){return AssocArray[x];}).join(',');
PS: there is Object.values
method somewhere, but it's not a standard. And there are also external libraries like hashish
.
Just loop through the array. Any array in JavaScript has indices, even associative arrays:
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));
Will output: 0, false, apple
The implementation of functions like Object.map
, Object.forEach
and so on is still being discussed. For now, you can stick with something like this:
function objectJoin(obj, sep) {
var arr = [], p, i = 0;
for (p in obj)
arr[i++] = obj[p];
return arr.join(sep);
}
Edit : using a temporary array and joining it instead of string concatenation for performance improvement.
Edit 2 : it seems that arr.push(obj[p]);
instead of incrementing a counter can actually be faster in most of recent browsers. See comments.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.