Tengo una variedad de objetos que necesito en un formato particular. Actualmente contiene está anidado de tal manera que contiene claves y objetos contenedores no deseados.
badArray = [ { "college": { "id": 1, "location": "Victoria", "rating": 10, "alumni": [ { "alumni_id": 1, "alumni_position": 1 }, { "alumni_id": 2, "alumni_position": 3 }, ] } }, { "college": { "id": 2, "location": "New York", "rating": 9, "alumni": [ { "alumni_id": 5, "alumni_position": 7 } ] } } ]A lo que me gustaría llegar es a un objeto menos anidado con la siguiente estructura
goodArray = [ { "id": 1, "location": "Victoria", "rating": 10, "alumni": [ { "alumni_id": 1, "alumni_position": 1 }, { "alumni_id": 2, "alumni_position": 3 }, ] }, { "id": 2, "location": "New York", "rating": 9, "alumni": [ { "alumni_id": 5, "alumni_position": 7 } ] } ]Puedo eliminar la clave no deseada usando
Object.values(badArray[0])Pero realmente estoy luchando por encontrar una manera de eliminar también el contenedor externo no deseado.
Cualquier ayuda REALMENTE apreciada
Simplemente puede hacer un map de matriz y devolver la matriz deseada en esta situación en lugar de intentar eliminar las claves
badArray = [ { "college": { "id": 1, "location": "Victoria", "rating": 10, "alumni": [ { "alumni_id": 1, "alumni_position": 1 }, { "alumni_id": 2, "alumni_position": 3 }, ] } }, { "college": { "id": 2, "location": "New York", "rating": 9, "alumni": [ { "alumni_id": 5, "alumni_position": 7 } ] } } ] let goodArray = badArray.map(el => el.college) console.log(goodArray)Lógica
Array.map a través de array.Object.values de cada objeto en la matrizHe considerado que solo tiene una clave en cada objeto de la matriz. Esta solución funcionará para cualquier valor de su clave.
violín de trabajo
const badArray = [ { college: { id: 1, location: "Victoria", rating: 10, alumni: [ { alumni_id: 1, alumni_position: 1 }, { alumni_id: 2, alumni_position: 3 }, ], }, }, { college: { id: 2, location: "New York", rating: 9, alumni: [ { alumni_id: 5, alumni_position: 7 }, ], }, }, ]; const goodArray = badArray.map(item => Object.values(item)[0]); console.log(goodArray);Si su clave es constante como "universidad", puede realizar esto como.
const goodArray = badArray.map(item => item.college);