Bueno, básicamente tengo una matriz que tiene objetos con nombres y este objeto tiene una matriz de objetos dentro, se ve así:
var array = [ {articles: [ {number: "123"}, {number: "143"}, ]}, {paragraph: [ {number: "197"}, ]}, ]Y estoy realmente dispuesto a obtener un valor de objeto a cambio, como este
{articles: [...], paragraph: [...]}¿Puede alguien ayudarme por favor?
Itere sobre la matriz y use Object.entries para obtener las claves y los valores.
const array=[{articles:[{number:"123"},{number:"143"}]},{paragraph:[{number:"197"}]}]; const out = {}; for (const obj of array) { const [[key, value]] = Object.entries(obj); out[key] = value; } console.log(out);Puede agrupar por las propiedades externas de los objetos anidados.
const array = [{ articles: [{ number: "123" }, { number: "143" }] }, { paragraph: [{ number: "197" }] }], result = array.reduce((r, o) => { Object .entries(o) .forEach(([k, a]) => (r[k] ??= []).push(...a)); return r; }, {}); console.log(result); .as-console-wrapper { max-height: 100% !important; top: 0; }Esto se puede hacer usando un reductor de matriz .
const array = [ { articles: [{ number: "123" }, { number: "143" }] }, { paragraph: [{ number: "197" }] }, ]; const formatted = array.reduce((accumulator, currentValue) => { const [[key, value]] = Object.entries(currentValue); return { ...accumulator, [key]: value } }, {}); console.log(formatted);Lo que estamos haciendo es inicializar nuestro reductor con un objeto vacío en la línea 9 e iterar sobre la matriz. Cada vez que iteramos, devolvemos el objeto con la nueva clave y el valor agregado al final.