下划线迭代javascript

时间:2015-04-16 20:01:25

标签: javascript arrays google-maps underscore.js

我正在尝试使用下划线和骨干创建一个对象。我目前有一个对象数组,里面有一个记录与另一个对象和数据集。

data [0]包含位置的名称 data [2]包含该位置的坐标

data: Array[3] 0: Objectcol_id: "4" data: "W Hotel Union 
Square" __proto__: Object1: Object2: Objectcol_id: "13"data: "40.736638, -73.988396"

要获取坐标并将它们推送到新数组,我使用以下函数:

var newarr  = _.map( rawData, function ( a ) { return [a.records[0].data[2].data] });

然后我分割坐标数组并创建一个具有键值对的对象,我在其中设置坐标。

var newnewarr = [];

for (i = 0; i < newarr.length; i++) {
  newnewarr[i] = _.map(newarr[i][0].split(","), function(s){ return parseFloat(s);
  });
}

function longlat( lat, long) {
  this.Latitude = lat; this.Longitude = long;
};

var coordinates = [];

for (i = 0; i < newnewarr.length; i++) {
  coordinates[i] = new longlat(newnewarr[i][0], newnewarr[i][1]);
  }

我现在正在尝试做什么,但我很难创建一个如下所示的对象:

newarr = [ {
   latitude: 40.736638,
   longitude: -73.988396,
   title: "W hotel Union Square"
   },
 {
   latitude: 40.736638,
   longitude: -73.988396,
   title: "Union Square Park"
   },

我的问题是如何使用我拥有的东西创建这个对象数组?我尝试通过迭代数据对象开始,但我很难做到这一点。在它说数据[2]的地方,id喜欢迭代数据[0,2]来获取那些值,然后将它们推送到一个对象。希望这很清楚!

var newarr  = _.map( rawData, function ( a ) { return  [a.records[0].data[2].data] });

1 个答案:

答案 0 :(得分:0)

您可以通过第二次_.map()调用轻松完成,如下所示:

var rawData = [<your raw data here>];

var tempDataArray = _.map( rawData, function ( a ) { return [a.records[0]] });

var finalDataArr = tempDataArray.map(function(d) {
    var tempCoordinatesArray = d[2].data.split(",");

    return {
        latitude: tempCoordinatesArray[0],  
        longitude: tempCoordinatesArray[1],
        title: d[0],
    }
});

console.log(finalDataArr);

或者,如果您想一步完成:

var rawData = [<your raw data here>];

var finalDataArr = rawData.map(function(d) {
    var tempData = d.records[0];
    var tempCoordinatesArray = tempData[2].date.split(",");

    return {
        latitude: tempCoordinatesArray[0],  
        longitude: tempCoordinatesArray[1],
        title: tempData[0],
    }
});

console.log(finalDataArr);

P.S。尝试为阵列选择更好的名称!