una forma más sencilla de volver a crear la salida de este código, donde si sub arr0 no es nulo, luego lo combina y filtra la salida deseada por el code clave.
¡Gracias de antemano!
let array = [ { id: 1, text: 'stuff1', arr0: [ {id:1, code: 'imacode1'}, {id:2, code: 'imacode2'}, ] }, { id: 2, text: 'stuff2', arr0: [ {id:3, code: 'imacode3'}, {id:4, code: 'imacode4'}, ] }, { id: 3, text: 'stuff3', arr0: [] } ] let arr = []; for(let i of array){ if(i.arr0.length !== 0){ arr.push(i.arr0) } } arr = arr.flat() for(let j of arr){ if(j.code === 'imacode2'){ let code = arr.filter(j=>j.code!=='imacode2') code = code.map(({code}) => code) console.log(code) } }editar: fragmento agregado
Puede usar Array.flatMap() junto con Array.filter() para obtener el resultado que desea, primero usamos .flatMap() para crear una matriz que incluya todos los elementos en cada arr0.
Luego usamos .filter() para incluir solo los elementos deseados, usando una función de filtro personalizada (modificable), en este caso eliminando cualquier elemento con un código de 'imacode2'.
let array = [ { id: 1, text: 'stuff1', arr0: [ {id:1, code: 'imacode1'}, {id:2, code: 'imacode2'}, ] }, { id: 2, text: 'stuff2', arr0: [ {id:3, code: 'imacode3'}, {id:4, code: 'imacode4'}, ] }, { id: 3, text: 'stuff3', arr0: [] } ] // Change filter as desired.. const filterProc = ({id, code}) => code !== 'imacode2'; const result = array.flatMap(el => el.arr0 || []).filter(filterProc).map(({code}) => code); console.log(result) .as-console-wrapper { max-height: 100% !important; top: 0; }