如何使用循环 json ajax 在 js 中构建数组( "key" :value)



我试图修改一个矢量图与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 = {};

最新更新