2016-08-30 4 views
-1

ich diese leere Array:Javascript Push JSON Array (Highcharts)

var seriesGraficos =[]; 

und dies bereits gemacht Vars:

var dataEnergiaContratadaA = [1458, 1332, 777]; 
var dataDemandaA = [18, 13, 77]; 
var nameEnergiaContratadaA = "Energy"; 
var nameDemandaA = "Demand"; 

und ich brauche das Array wie auf diese Weise zu füllen (ich brauche die seriesGraficos genau so ist es die Serie von Array Highcharts):

seriesGraficos = [{ 
     name: nameEnergiaContratadaA, 
     data: dataEnergiaContratadaA 
     }, { 
     name: nameDemandaA , 
     data: dataDemandaA 
     }]; 

ich etwas wie der Versuch wurde:

seriesGraficos.push(
{"name": nameEnergiaContratadaA,"data": dataEnergiaContratadaA}, 
{"name": nameDemandaA,"data": dataDemandaA} 
); 

Aber ich kann es nicht bekommen. Irgendeine Hilfe?

+2

Das obige Beispiel scheint, ist, wie es funktioniert. Es erzeugt das erforderliche Array. https://plnkr.co/edit/Y7FaTJlLM3h04CuKwATo?p=preview – skreborn

+0

@RahulSharma 'Array.prototype.push' unterstützt mehrere Elemente. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/push – skreborn

+0

Hm, ja, weiß nicht warum, aber ich habe es oft versucht und nicht funktioniert, Ergebnisse wie eine Schleife von Objekten, aber jetzt funktioniert es ... (Ich verwende React, Symfony, Node.js, Webpack, etc, vielleicht war ein Cache-Problem) – pmirnd

Antwort

0

Sie können dies mit gespreizten Operator in ES6 tun:

seriesGraficos = []; 
 
seriesGraficos.push(...[ 
 
{"name": 'nameEnergiaContratada',"data": 'dataEnergiaContratadaA'}, 
 
{"name": 'nameDemandaA',"data": 'dataDemandaA'} 
 
]); 
 

 
console.log(seriesGraficos);

+0

Dies produziert buchstäblich das exakt gleiche Array wie das Original-Snippet, nicht wahr ? – skreborn

+0

Hm, ich weiß nicht warum, aber dieses funktioniert, außer dass ich den Wert der Vars habe, nicht den 'nameDemandaA¡ zum Beispiel. Wie folgt: https://plnkr.co/edit/ZJ09Fyr4xNvQuYxthgCu?p=preview – pmirnd

+0

Ich habe es nicht zur Vereinfachung kopiert. Das funktioniert, aber wie man in Kommentaren sagt, sollte man push verwenden, das mehrere Elemente akzeptiert. –