在jQuery中创建对象数组

Creating an object array in jQuery

本文关键字:数组 创建对象 jQuery      更新时间:2023-09-26

我想存储一个纬度/经度数组。我的页面上有这些输入:

<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);
});

我如何修改它来创建一个对象数组?

我会使用jQuery.map():

$.map(latitudes, function(lat, i) {
  return {latitude:lat, longitude:longitudes[i]};
});
var coords = [];
$.each(latitudes, function(index, value) {
    coords.push({'Latitude': value, 'Longitude': longitudes[index]});
});

这是一个方法:

http://jsfiddle.net/95cga/

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);
}

我不喜欢假设事物总是成对的,即使它们应该成对。这就是为什么数学。