J'ai un objet comme ça:
var person = {
name: "John",
surname: "Smith",
phone: "253 689 4555"
}
Je voudrais:
John,Smith,253 689 4555
Y a-t-il un moyen facile?
Si possible, pourriez-vous fournir un exemple où je peux également définir le séparateur?} _
Vous pouvez utiliser ce one-liner dans les navigateurs modernes
Object.keys(person).map(function(k){return person[k]}).join(",");
essaye ça:
var key,
person = {
name: "John",
surname: "Smith",
phone: "253 689 4555"
},
array = [];
for ( key in person ) {
if ( person.hasOwnProperty( key ) ) {
array.Push( person[ key ] );
}
}
console.log( array.join( ',' ) );
ou en style de fonction:
var
getValues = function ( obj ) {
var key,
array = [];
for ( key in obj ) {
if ( obj .hasOwnProperty( key ) ) {
array.Push( obj [ key ] );
}
}
return obj.join( ',' );
};
var person = {
name: "John",
surname: "Smith",
phone: "253 689 4555"
};
console.log( getValues( person ) );
Écrivez une fonction comme celle-ci:
function toCSV(obj, separator) {
var arr = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
arr.Push(obj[key]);
}
}
return arr.join(separator || ",");
}
Et ensuite, vous pouvez l'appeler comme ceci:
toCSV(person, "|"); // returns "John|Smith|253 689 4555"
ou
toCSV(person); // returns "John,Smith,253 689 4555"
Ce code sera utile lorsque vous souhaitez extraire certaines valeurs de propriété d'un tableau d'objets sous forme de chaîne séparée par des virgules.
var arrayObjects = [
{
property1: "A",
property2: "1"
},
{
property1: "B",
property2: "2"
},
{
property1: "C",
property2: "3"
}
];
Array.prototype.map.call(arrayObjects, function(item) { return item.property1; }).join(",");
Sortie - "A, B, C"
Vous voudrez peut-être essayer cette bibliothèque - Underscore.js . Il vous donne des méthodes vraiment utiles et fonctionne sur tous les navigateurs.
Ici tu peux le faire comme ça -
_.values(person).join(",")
ou
_.values(person).join("|")
Voici un one liner plus simple. Il utilise la méthode Object.values () à la place de Object.keys
Object.values(obj).join(",");
Object.values(person).join('/')
Une autre méthode consiste à utiliser la fonction lodash _.toString ()
console.log( _.toString( Object.values( person ) ) );
==> John,Smith,253 689 4555
Vérifiez le lien ci-dessous https://lodash.com/docs/4.17.5#toString