Necesita una forma alternativa para el mapa plano en la versión inferior de javascript es5 para el mapeo a continuación.
const b = [{ "errorname": [{ "name": "Error 01", "desc_1": "Test: 01", "desc_2": "Testing" }, { "name": "Error 03", "desc_1": "Test: 03", "desc_2": "Testing" }], }, { "errorname": [{ "name": "Error 02", "desc_1": "Test: 02", "desc_2": "Testing" }, { "name": "Error 09", "desc_1": "Test: 09", "desc_2": "Testing" } ] }]; var errorMap = new Map(b .flatMap(o => o.errorname) .map(({ name, ...e }) => [name, e])); console.log(errorMap) .as-console-wrapper { max-height: 100% !important; top: 0; }tratando de es5 con un tipo similar de operación. Se accede a la aplicación usando la aplicación electrónica que no es compatible con es9
Puede descargar un polyfill o implementar el suyo propio. debería ser así
Array.prototype.flatMap = function(mapper) { var result = []; for (var i = 0; i < this.length; ++i) { var item = mapper(this[i], i, this); if (!Array.isArray(item)) { item = [item]; } for (var j = 0; j < item.length; ++j) { result.push(item[j]); } } return result; } Entonces podrá llamar a myArray.flatMap como lo haría normalmente.
Puede hacer una reducción interior-exterior anidando las llamadas. Esto funcionará para una versión de ECMAScript inferior a 5/6.
const b = [{ "errorname": [ { "name": "Error 01", "desc_1": "Test: 01", "desc_2": "Testing" }, { "name": "Error 03", "desc_1": "Test: 03", "desc_2": "Testing" }], }, { "errorname": [ { "name": "Error 02", "desc_1": "Test: 02", "desc_2": "Testing" }, { "name": "Error 09", "desc_1": "Test: 09", "desc_2": "Testing" } ] }]; var errorMap = b.reduce(function(outer, group) { return group.errorname.reduce(function(inner, item) { return inner.set(item.name, { desc_1: item.desc_1, desc_2: item.desc_2 }); }, outer); }, new Map); console.log(Object.fromEntries([...errorMap])); .as-console-wrapper { max-height: 100% !important; top: 0; }