我想存储一系列纬度/经度。我在页面上有这些输入:
<input type="hidden" class="latitude" value="-12.3456" />
<input type="hidden" class="longitude" value="12.3456" />
<input type="hidden" class="latitude" value="98.7654" />
<input type="hidden" class="longitude" value="-98.7654" />
我将它们放入数组:
var latitudes = $('.latitude').map(function () { return this.value; }).get();
var longitudes = $('.longitude').map(function () { return this.value; }).get();
但我认为将它们作为对象存储在单个数组中会更好,所以我可以说:
$.each(array, function (i, obj) {
alert(obj.Latitude);
alert(obj.Longitude);
});
如何修改它以创建对象数组?
答案 0 :(得分:7)
我会使用jQuery.map():
$.map(latitudes, function(lat, i) {
return {latitude:lat, longitude:longitudes[i]};
});
答案 1 :(得分:2)
var coords = [];
$.each(latitudes, function(index, value) {
coords.push({'Latitude': value, 'Longitude': longitudes[index]});
});
答案 2 :(得分:0)
这是一种方式:
var longs=$(".longitude");
var lats=$(".latitude");
var objs=[];
for(var i=0;i<Math.min(longs.length,lats.length);i++){
var obj={
"Latitude" : longs.eq(i).val(),
"Longitude" : lats.eq(i).val()
}
objs.push(obj);
}
我不喜欢假设事情总是在配对中,即使它们应该是。这就是Math.min在那里的原因。