Búsqueda de sitios web

javascript - ¿Cómo agregar una columna a los elementos de un arreglo?


Tengo un objeto Json que viene de un servidor backend llamado Data así:

[{
  "categoryName": "Google",
  "id": "58591d2b7672d99910497bec",
  "clientId": "585808f6737f6aad1985eab2"
}, {
  "categoryName": "Microsoft",
  "id": "58591d3d7672d99910497bee",
  "clientId": "585808f6737f6aad1985eab2"
}, "3", {
  "categoryName": "Yahoo",
  "id": "58591d4c7672d99910497bef",
  "clientId": "585808f6737f6aad1985eab2"
}, {
  "categoryName": "Msn",
  "id": "585d25f6ae4b2ecb056bc514",
  "clientId": "585808f6737f6aad1985eab2"
}]

y me gustaría agregar una columna (¿propiedad?) a cada fila así:

[{
  "categoryName": "Google",
  "id": "58591d2b7672d99910497bec",
  "clientId": "585808f6737f6aad1985eab2",
  "new column": ""
}, {
  "categoryName": "Microsoft",
  "id": "58591d3d7672d99910497bee",
  "clientId": "585808f6737f6aad1985eab2",
  "new column": ""
}, "3", {
  "categoryName": "Yahoo",
  "id": "58591d4c7672d99910497bef",
  "clientId": "585808f6737f6aad1985eab2",
  "new column": ""
}, {
  "categoryName": "Msn",
  "id": "585d25f6ae4b2ecb056bc514",
  "clientId": "585808f6737f6aad1985eab2",
  "new column": ""
}]

¿Alguien sabe cómo puedo hacer esto?

Gracias de antemano.

Respuesta #1

Prueba esto:

data.forEach(function(e){
  if (typeof e === "object" ){
    e["new column"] = ""
  }
});

Necesita esa comprobación de typeof debido a ese extraño 3 en el medio.

Respuesta #2

Puedes hacer esto:

const arr = data.map(x => Object.assign({}, data, { "new column": "" }))

Artículos relacionados