简体   繁体   中英

How to iterate this kind of object with javascript using google charts?

I have a list of map from my backend and i would like to loop this list in my map. I tried with a simple for but it doesn't work.

This is my code:

/*<![CDATA[*/
    var message = new Map();
    console.log('je suis le ' + typeof message);
    message = /*[[${liste}]]*/ 'default';
    /*]]>*/

    console.log(typeof message)

    function drawChart() {
        var data = google.visualization.arrayToDataTable([
            //for(i=0;i<message.length;i++) {}
            ['Task', 'tranche ages'],

            for(i=0;i<message.length;i++) {
                [Object.keys(message)[i], Object.values(message)[i]];
            }

            // [Object.keys(message)[0], Object.values(message)[0]],
            // [Object.keys(message)[1], Object.values(message)[1]],
            // [Object.keys(message)[2], Object.values(message)[2]],
            // [Object.keys(message)[3], Object.values(message)[3]],
            // [Object.keys(message)[4], Object.values(message)[4]],
            // [Object.keys(message)[5], Object.values(message)[5]]
        ]);

在此处输入图片说明

Thnk you in advance for your advices

The cleanest way is to use Object.entries :

 input = {"nombre de personnes entre 16 et 20 ans": 2, "de personnes entre 20 et 30 ans": 5, "de personnes entre 30 et 40 ans": 2, "de personnes entre 40 et 50 ans": 1}; console.log(Object.entries(input)); 

UPDATE

For older browsers support don't forget to include polyfill

Here is how you can convert object into an array of key - value array.

 input = { "nombre de personnes entre 16 et 20 ans": 2, "nombre de personnes entre 20 et 30 ans": 5, "nombre de personnes entre 30 et 40 ans": 2, "nombre de personnes entre 40 et 50 ans": 1 }; output = []; Object.keys(input).forEach(function(d){ output.push([d, input[d]]); }); console.log(output); 

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM