[英]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.