javascript - 我需要一些关于 javascript 对象的指导

标签 javascript object

我的问题如下。我有以下对象:

let obj =  {
id: 1404,
fecha: 2018-03-18T06:47:28.365Z,
tabla: 'usuarios',
operacion: 'UPDATE',
usuario: 'user',
valor_nuevo:
 { nombres: 'John',
   apellidos: 'smith',
   direccion: 'some cool place' },
valor_anterior:
 { nombres: 'name',
   apellidos: 'last',
   direccion: 'addres' } 
}

我基本上需要获取嵌套对象 valor_nuevovalor_anterior,提取每个元素,复制未嵌套的元素并将它们分配给一个新对象,其中提取的元素在嵌套对象。像这样:

obj =  {
 {
  id: 1404,
  fecha: 2018-03-18T06:47:28.365Z,
  tabla: 'usuarios',
  operacion: 'UPDATE',
  usuario: 'user',
  valor_nuevo: 'John',
  valor_anterior: 'name',

 },
 {
  id: 1404,
  fecha: 2018-03-18T06:47:28.365Z,
  tabla: 'usuarios',
  operacion: 'UPDATE',
  usuario: 'user',
  valor_nuevo: 'smith',
  valor_anterior: 'last',

 },
 {
  id: 1404,
  fecha: 2018-03-18T06:47:28.365Z,
  tabla: 'usuarios',
  operacion: 'UPDATE',
  usuario: 'user',
  valor_nuevo: 'some cool place',
  valor_anterior: 'address',

 },
}

我怎样才能达到这个结果?

最佳答案

这是一种方法。它假定 valor_nuevovalor_anterior 具有相同数量的具有匹配值的键:

let obj = {
    id: 1404,
    fecha: '2018-03-18 T06:47:28.365 Z',
    tabla: 'usuarios',
    operacion: 'UPDATE',
    usuario: 'user',
    valor_nuevo: {
        nombres: 'John',
        apellidos: 'smith',
        direccion: 'some cool place'
    },
    valor_anterior: {
        nombres: 'name',
        apellidos: 'last',
        direccion: 'addres'
    }
};

var base = Object.assign({}, obj),
    nuevo = base.valor_nuevo,
    anterior = base.valor_anterior,
    ret = [];

delete base.valor_nuevo;
delete base.valor_anterior;

for (key in nuevo) {
    ret.push(Object.assign({
        valor_nuevo: nuevo[key],
        valor_anterior: anterior[key]
    }, base));
}

console.log(ret);

关于javascript - 我需要一些关于 javascript 对象的指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49345125/

相关文章:

javascript - JS/JQuery获取元素鼠标结束

javascript - 多个条件的单一正则表达式模式

javascript - 是否可以绑定(bind)在 VueJS 中使用 url() 的 SVG 填充属性?

javascript - 初始化包含数组的 javascript 对象

javascript - 将一串坐标对转换为对象数组

javascript - 设置值正在更改键名

java - 在对象数组中 = 所有元素都相同......分配数据后

javascript - 如果没有一个 td 有 id,确定哪个 td 元素被点击

javascript - 在 Javascript 中使用 Haversine 公式

JavaScript ES5 : How to Group By a key and create Sub objects from a flat array of key-value objects without using Lodash or Underscore