Tengo un objeto como este (nombre de nodo)
{ BGF: [ 'bgf-simulator-pn', 'bgf-simulator', 'bgf-simulator-2', 'bgf-1-error' ], Baseband: [ 'baseband_2', 'baseband_1' ], CCPC: [ 'ccpc-emulator' ], CCRC: [ 'ccrc-emulator' ], CEE: [ 'cee' ], }Quiero obtener la longitud de la clave de matriz
usé de esta manera
const nodename = await topologyBrowser.nodes(); const arrayLength = Object.keys(nodename).length; console.log(arrayLength);y el registro de la consola devuelve 5, pero quiero 9,
qué hice mal, qué debo hacer chicos
Puede utilizar Object#values() y Array#flat() para aplanar la matriz multidimensional.
Obtenga la longitud de esta manera: Object.values(nodename).flat().length !
Vea un fragmento de ejemplo de trabajo a continuación:
const nodename = { BGF: [ 'bgf-simulator-pn', 'bgf-simulator', 'bgf-simulator-2', 'bgf-1-error' ], Baseband: ['baseband_2', 'baseband_1'], CCPC: ['ccpc-emulator'], CCRC: ['ccrc-emulator'], CEE: ['cee'], }; const res = Object.values(nodename).flat().length; console.log(res)Puede utilizar el método Array#reduce() :
const nodename = { BGF: [ 'bgf-simulator-pn', 'bgf-simulator', 'bgf-simulator-2', 'bgf-1-error' ], Baseband: [ 'baseband_2', 'baseband_1' ], CCPC: [ 'ccpc-emulator' ], CCRC: [ 'ccrc-emulator' ], CEE: [ 'cee' ], }; const result = Object.values(nodename).reduce((res, curr) => res + curr.length, 0); console.log(result);