2015-08-14 14 views

risposta

6

È possibile utilizzare Object.keys()[0] per ottenere la chiave, quindi utilizzare il tasto per ottenere il valore.

JSFiddle

var myData = [{"bg_2":"0.50"},{"bg_7":"0.10"},{"bg_12":"0.20"}]; 
 

 
for (var i = 0; i < myData.length; i++) { 
 
    var myObject = myData[i]; 
 
    var firstKey = Object.keys(myObject)[0]; 
 
    var value = myObject[firstKey]; 
 

 
    console.log(firstKey + ": " + value); 
 
}

Vedi anche: ECMAScript® Language Specification: 15.2.3.14 Object.keys (O)

+0

Grazie mille. Stavo andando in circolo su questo e la tua soluzione è perfetta. – dijon

3

Ampliando @AR7 s' answer, nel caso in cui ci possono essere più proprietà in ciascuno degli oggetti è possibile memorizzare nella cache l'oggetto restituito da Object.keys() e passa in rassegna ciascuna proprietà all'interno del ciclo di matrice.

Utilizzando il metodo seguente, è possibile gestire qualsiasi numero di proprietà all'interno dell'oggetto.

Mi rendo conto che questo potrebbe non essere più utile in questa situazione specifica rispetto alla risposta di cui sopra, ma si spera che sarà utile per i futuri spettatori.

JSFiddle

var a = [ 
 
    { "bg_2":"0.50", "bg_7":"0.10", "bg_12":"0.20"}, 
 
    { "bg_2":"0.50", "bg_7":"0.10"}, 
 
    { "bg_2":"0.50"} 
 
]; 
 

 
a.forEach(function(o){ 
 
    console.log(o); 
 
    var k = Object.keys(o); 
 
    for(var i in k) 
 
     console.log(k[i], ':', o[k[i]]); 
 
});

Problemi correlati