使用Javascript,jQuery和&amp ;;从多维数组中删除重复项underscore.js

时间:2015-03-31 21:04:29

标签: javascript jquery arrays multidimensional-array underscore.js

我有一个网页,它使用jQuery从包含位置名称,纬度和经度的JSON文件中获取数据。然后我将检索到的数据推送到一个数组中。

 var weatherSites = [];
 function weather() {
    $.getJSON('json/LOCS.json', function(data) {
      $.each(data.locations, function() {
       var locationLatitude = this.latitude;
       var locationLongitude = this.longitude;
       var locationName = this.location;
       // -- If the latitude and longitude are 0,0 then skip to the next iteration --
            if (locationtLatitude == +0 || locationLatitude == -0 && locationLongitude == +0 || locationLongitude == -0) {
                return true;
            }

       // Populate array with site name, latitude, and longitude       
       weatherSites.push({name: locationName, latitude: locationLatitude, longitude: locationLongitude});

    });
  });

  }; 

代码检索数据并根据需要填充数组。但是,即使locationName和/或locationLatitude不同,也有许多locationLongitude个项目相同。我需要从locationName s相同的数组元素中删除,无论纬度或经度如何。

我尝试过使用这里看到的一些方法,但没有运气。例如:

function removeDupes() {
        var uniques = _.map(_.groupBy(weatherSites,function(doc){
          return doc.id;
        }),function(grouped){
          return grouped[0];
        });

此示例需要underscore.js。这不适合我。我是编程和GIS的新手。我希望得到一个答案,其中包含必要的完整代码,并希望正在发生的事情背后的逻辑。这对我很有帮助,当然也会帮助我学习。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

开源项目http://www.jinqJs.com可以轻松完成。 这是GitHub链接:GitHub

var results = jinqJs()
                  .from(data1)
                  .groupBy('locationName')
                  .max('locationLatitude', 'locationLongitude')
                  .select();

如果您需要任何有效的例子,请告诉我。