Hola, tengo JSON como este, una matriz y luego un objeto dentro de ellos
[ { "namaBagian": "Bagian1", "bagianID": 1, "postID": [ 1, 2, 3 ], "judul": [ "Tes", "a", "TesFront" ] }, { "namaBagian": "Bagian2", "bagianID": 2, "postID": [ 4, 5 ], "judul": [ "Testing", "" ] }, ]
Quiero fusionar "postID" y "judul" en una nueva clave de objeto. Necesito ayuda para hacer como a continuación:
[ { "namaBagian": "Bagian1", "bagianID": 1, "newKey": { "postID": [ 1, 2, 3 ], "judul": [ "Tes", "a", "TesFront" ] }, }, { "namaBagian": "Bagian2", "bagianID": 2, "newKey":{ "postID": [ 4, 5 ], "judul": [ "Testing", "" ] } }, ]
Tengo un problema cuando quiero crear nuevas claves de objeto con valor de la fusión de 2 claves de objeto anteriores. Estoy muy feliz cuando alguien me puede ayudar a resolver esto. necesito ayuda del codigo javascript
Simplificar el problema que se presenta. Efectivamente desea convertir una matriz de este objeto:
{ "prop1": "val", "prop2": "val2" }
En una matriz de este objeto:
{ "newprop": { "prop1": "val1", "prop2": "val2" } }
Puede proyectar una matriz en una nueva forma con .map
. Por ejemplo:
var newArr = arr.map(x => { return { newprop: { prop1: x.prop1, prop2: x.prop2 } } });
Así que el tuyo podría ser algo como esto:
var newArr = arr.map(x => { return { namaBagian: x.namaBagian, bagianID: x.bagianID, newKey: { postID: x.postID, judul: x.judul } } });
Si la forma de los objetos es más dinámica, podría hacer un uso inteligente del operador de distribución para no tener que especificar cada valor explícitamente. Pero el principio general es el mismo. Lo que está buscando hacer es mapear una matriz en una nueva matriz, donde cada elemento adquiere una nueva forma construida a partir de los datos del elemento existente.