我的问题如下。我有以下对象:
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_nuevo
和 valor_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_nuevo
和 valor_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/