繁体   English   中英

如何使用循环JSON AJAX在JS中构建数组(“键”:值)

[英]How build array(“key”:value) in js with loop json ajax

我正在尝试使用AJAX和JSON获得的值修改矢量地图。

映射函数非常适合此数组键值:

var visitorsData = {
    "tac": 564, 
    "moq": 400, 
    "lim": 1000, 
    "apu": 800, 
    "caj": 760, 
    "ama": 300, 
    "lib": 700, 
    "lam": 600,
};

而采用此值的函数是这样的:

$('#world-map').vectorMap({
  map: 'peru',
  backgroundColor: '#fff',
  regionStyle: {
    initial: {
      fill: "#c6c6c6",
      stroke: "#204d6f",
      "stroke-width": 1,
      "stroke-opacity": 1
    },
    hover: {
      fill: "#ed0000",
      "fill-opacity": "1"
    }
  },
  series: {
    regions: [{
      values: visitorsData,
      scale: ["#3c8dbc", "#2D79A6"], //['#3E5E6B', '#A6BAC2'],
      normalizeFunction: 'polynomial'
    }]
  },
  onRegionLabelShow: function(e, el, code) {
    if (typeof visitorsData[code] != "undefined")
      el.html(el.html() + ': ' + visitorsData[code] + ' new visitors');
  }
})

现在,我想从JSON中获取值,并以此构建一个新的visitorsData但没有任何功能。 这是我的代码:

$.ajax({
    url: globalMapUrl, //obtain json
  })
  .done(function(data) {
    var visitorsData = new Array();
    for (var i = 0; i < data.length; i++) {
      var item = data[i];
      visitorsData[item.nombre] = item.numeroDeAnuncios;
    }
  })
  .fail(function() {
    alert("Ajax failed to fetch data")
  })

您的visitorsData看起来像一个JSON对象,而不是向量数组。创建一个新的JSONObject而不是一个Array,您应该会

代替,

var visitorsData = new Array();

尝试

var visitorData = {};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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