0
  var data= [{_id: "5a93cbd49ae761a4015f6346", nombre: "Chicago - Missouri", longitud: "-94.6807924", latitud: "38.287606"},
{ _id: "5a93ca539ae761a4015f6344", nombre: "Boston - Central Falss", longitud: "-71.4111895", latitud: "41.8902971"},
{ _id: "5a93ccbf9ae761a4015f6349", nombre: "Houston - Dallas", longitud: "-97.0117365", latitud: "32.8209296"}]

var d=[];
for(var i in data){
    d.push({ data[i].nombre:data[i]["_id"] })
}

I would like to have a json with structure

{ "nombre":"_id" }

for example:

 { "Chicago - Missouri":"5a93cbd49ae761a4015f6346"}
 { "Boston - Central Falss- Missouri": "5a93ca539ae761a4015f6344" }4

what is my mistake?

thanks

yavg
  • 2,761
  • 7
  • 45
  • 115

2 Answers2

5

Try This -

var data= [{_id: "5a93cbd49ae761a4015f6346", nombre: "Chicago - Missouri", longitud: "-94.6807924", latitud: "38.287606"},
{ _id: "5a93ca539ae761a4015f6344", nombre: "Boston - Central Falss", longitud: "-71.4111895", latitud: "41.8902971"},
{ _id: "5a93ccbf9ae761a4015f6349", nombre: "Houston - Dallas", longitud: "-97.0117365", latitud: "32.8209296"}]

var d =[];
for(var i in data){
 var pushObj = {};
    pushObj[data[i].nombre] = data[i]["_id"];
    d.push(pushObj)
}
console.log(d);
Ayon Saha
  • 477
  • 5
  • 8
  • `Array.prototype.map()` is much faster. It runs about four times faster than pushing onto a new array one element at a time. And in my eyes it's simpler, but that's a matter of opinion. `var newData = data.map( function(train){ let obj = {}; obj[train["_id"]] = train["nombre"]; return obj; } ); console.log(newData);` – Gui LeFlea Feb 27 '18 at 03:52
2

Create an object first, add the data and push it into d

var data= [{
  _id: "5a93cbd49ae761a4015f6346",
  nombre: "Chicago - Missouri", 
  longitud: "-94.6807924", 
  latitud: "38.287606"
},{ 
  _id: "5a93ca539ae761a4015f6344", 
  nombre: "Boston - Central Falss", 
  longitud: "-71.4111895", 
  latitud: "41.8902971"
},{ 
  _id: "5a93ccbf9ae761a4015f6349", 
  nombre: "Houston - Dallas", 
  longitud: "-97.0117365", 
  latitud: "32.8209296"
}]

var d=[];
for(var i in data){
    var temp = {};
    temp[ data[i].nombre ] = data[i]["_id"];
    d.push(temp)
}

console.log(d);
Thum Choon Tat
  • 3,084
  • 1
  • 22
  • 24