Variabele of array toewijzen aan objectelement in javascript

Ik heb zoiets dat werkt, maar ik wil de array result2 gebruiken voor de eerste reeks .data in plaats van de hardcoding. Het gebruik van data: result2 of data: [result2] werkt niet. Is het niet mogelijk om een ​​variabele toe te wijzen aan dit soort aangiften?

var chart1;
$(document).ready(function() {
  $.get('sales_data', function(result) {
      var result2 = result.split(',');
      chart1 = new Highcharts.Chart({
         series: [{
            type: 'column',
            name: 'Units',
            data: [1, 3, 4]
         }, {
            type: 'line',
            name: '3 month avg',
            data: [2, 3, 4]
         }]
      });
   });
});
1
Wat werkt hier niet? split retourneert een array, niet een object, alleen maar FYI.
toegevoegd de auteur Rocket Hazmat, de bron
je hebt niets gedaan met resultaat2 ..?
toegevoegd de auteur Sudhir Bastakoti, de bron
Wat is resultaat ?
toegevoegd de auteur Cᴏʀʏ, de bron
het zou gewoon data moeten werken: result2 . Heb je het geprobeerd? Als het niet werkt, controleer dan of sales_data de juiste string retourneert.
toegevoegd de auteur minboost, de bron
Dit object wordt ingevoerd in een grafiek-plug-in. Als ik gegevens vervang: [1,3,4] met beide gegevens: [result2] of gegevens: result2, wordt het diagram niet weergegeven - het is leeg. Ik heb een waarschuwing (result2) gebruikt om te bevestigen dat deze over de gegevens beschikt die ik nodig heb.
toegevoegd de auteur user1084007, de bron
Met andere woorden, dit is niet hetzelfde als wat ik hierboven heb gepost: var chart1; $ (document) .ready (function() {$ .get ('sales_data', functie (resultaat) {var result2 = result.split (','); chart1 = new Highcharts.Chart ({series: [{type: 'kolom', naam: 'Units', data: result2}, {type: 'line', name: '3 month avg', data: [2, 3, 4]}]});});});
toegevoegd de auteur user1084007, de bron
Verwar ik objecten en arrays? Moet result2 een object zijn om de gegevens te dupliceren: [1,3,4] syntaxis?
toegevoegd de auteur user1084007, de bron

2 antwoord

Het probleem kan zijn dat als u een tekenreeks splitst, result2 een reeks tekenreeksen zal zijn.

Ik heb nog nooit Highcharts gebruikt, maar probeer elk element van de tekenreeks in een overeenkomstige array van gehele getallen te parseren en vervolgens die array door te geven.

var strings = result.split(',');
var d = [];
for (var i = 0; i < strings.length; i++)
   d.push(parseInt(strings[i], 10));

Gebruik vervolgens data: d in uw aanroep naar Chart .

3
toegevoegd
Ik zag een ander voorbeeld in Highcharts dat parseFloat gebruikte en dat heeft mijn probleem opgelost - bedankt allebei,
toegevoegd de auteur user1084007, de bron

U hebt gelijk dat het mogelijk is om iets als in JavaScript te doen:

var arr = str.split(',');
var obj = {data: arr};

Maar ik denk dat het probleem kan zijn dat u een reeks tekenreeksen doorgeeft aan uw diagram-API.

In je hard-gecodeerde voorbeeld geef je een aantal gehele getallen door. Maar als u split aanroept, krijgt u een reeks reeksen. Dit kan de oorzaak van het probleem zijn.

Dus, probeer je stringarray te converteren naar een array van nummers met parseInt of parseFloat voordat je het doorgeeft aan de chart-API.

1
toegevoegd