javascript在多维数组内容中动态导航

时间:2014-09-08 10:14:03

标签: javascript for-loop

我正在用谷歌地图构建一些东西,我写了这段代码来填充信息窗口:

  mouseover: function(marker, event, context){

    var numManc = context.data.num_manc;
    var elencoManc = '';

    for(i=1;i<=numManc;i++)
    {
        var mymanc = i;
        elencoManc = elencoManc + context.data.mancinita.mymanc.mancinita;
    }

   etc....

我总是得到这个错误 TypeError:context.data.mancinita.mymanc未定义

实际上我需要的是var&#34; elencoManc&#34;连接N次,其中N等于var&#34; numManc&#34;。

所以在&#34; for&#34;循环我应该得到类似

的东西
elencoManc = elencoManc + context.data.mancinita.1.mancinita;
elencoManc = elencoManc + context.data.mancinita.2.mancinita;
elencoManc = elencoManc + context.data.mancinita.3.mancinita;


elencoManc = elencoManc + context.data.mancinita.N.mancinita;

似乎我不能让那种结论充满活力。

这是存储在数组中的一条记录:

{
                        lat: 35.110901,
                        lng: 12.876027,
                        options: {
                            icon: "icon_2.png",
                            },
                        data: {
                            nome: "Name of the sotre",
                            indirizzo: "Address of the sotre",
                            city: "Rome",
                            linkStore: "http://www.storelink.com",
                            immagine_copertina: "asset/imageStore.png",
                            city: "Rome",
                            num_tipi: 1,
                            num_manc: 2,
                            tipi_1: {
                               icona_tipo: "asset/ico/ico2.png",
                               tipo: "negozio_bio"
                            },
                            mancinita: {
                               1: {
                                    icona: "iconManc2.png",
                                    idmanc: 2,
                                    mancinita: "organic"
                                  },
                               2: {
                                    icona: "iconManc5.png",
                                    idmanc: 5,
                                    mancinita: "lowFat"
                            },

                           },
                          distanza: "0.000"
                          }
                         }

有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:1)

您的JSON存在一些问题。例如城市:“罗马”出现两次。 如果你修复它们,那么这样的东西应该有效(假设上下文与你的JSON相同):

context.data.mancinita[1].mancinita

我创建了一个小提琴here,并举例说明:

var context = {
                        lat: 35.110901,
                        lng: 12.876027,
                        options: {
                            icon: "icon_2.png"
                            },
                        data: {
                            nome: "Name of the sotre",
                            indirizzo: "Address of the sotre",
                            city: "Rome",
                            linkStore: "http://www.storelink.com",
                            immagine_copertina: "asset/imageStore.png",
                                                        num_tipi: 1,
                            num_manc: 2,
                            tipi_1: {
                               icona_tipo: "asset/ico/ico2.png",
                               tipo: "negozio_bio"
                            },
                            mancinita: {
                               1: {
                                    icona: "iconManc2.png",
                                    idmanc: 2,
                                    mancinita: "organic"
                                  },
                               2: {
                                    icona: "iconManc5.png",
                                    idmanc: 5,
                                    mancinita: "lowFat"
                            }
                           },
                          distanza: "0.000"
                          }
                         };


console.log(context.data.mancinita[1].mancinita);