En la matriz de objetos recibida del servidor, quiero procesar y recuperar solo el valor no nulo de la propiedad en el objeto. ¿Cómo puedo cambiarlo en mi función?
const arr = [{ text01 : 'name', text02 : 'email@gmail.com', text03 : '010-1234-5678', text04 : 'adress1', text05 : 'adress2', text06 : null, text07 : null, text08 : null, }, { text01 : 'name1', text02 : 'email2@gmail.com', text03 : '010-1255-5148', text04 : 'adress3', text05 : 'adress4', text06 : null, text07 : null, text08 : null, }] getDataArr(arr) { arr.forEach(item => { const aaa = []; for (let key in item) { if (item[key] !== null) { const value = item[key]; aaa.push({ key, value }); } } console.log(aaa); });Obtener el valor como
const arr = [{ text01 : 'name', text02 : 'email@gmail.com', text03 : '010-1234-5678', text04 : 'adress1', text05 : 'adress2' }, { text01 : 'name1', text02 : 'email2@gmail.com', text03 : '010-1255-5148', text04 : 'adress3', text05 : 'adress4', }]Una forma concisa de eliminar valores nulos es filtrar las entradas de objetos, creando un objeto a partir de los restantes. Con eso, simplemente asigne sobre la matriz de entrada...
function nonNullValues(obj) { return Object.fromEntries( Object.entries(obj).filter(([key, value]) => value !== null) ) } const result = theArray().map(nonNullValues); console.log(result) function theArray() { return [{ text01: 'name', text02: 'email@gmail.com', text03: '010-1234-5678', text04: 'adress1', text05: 'adress2', text06: null, text07: null, text08: null, }, { text01: 'name1', text02: 'email2@gmail.com', text03: '010-1255-5148', text04: 'adress3', text05: 'adress4', text06: null, text07: null, text08: null, } ] }Lodash si no te importa. Usando: ominBy y isNull
const arr = [{ text01 : 'name', text02 : 'email@gmail.com', text03 : '010-1234-5678', text04 : 'adress1', text05 : 'adress2', text06 : null, text07 : null, text08 : null} , { text01 : 'name1', text02 : 'email2@gmail.com', text03 : '010-1255-5148', text04 : 'adress3', text05 : 'adress4', text06 : null, text07 : null, text08 : null} ] const result = arr.map(obj => _.omitBy(obj, _.isNull)); console.log(result); .as-console-wrapper{min-height: 100%!important; top: 0} <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script> const arr = [ { text01: "name", text02: "email@gmail.com", text03: "010-1234-5678", text04: "adress1", text05: "adress2", text06: null, text07: null, text08: null, }, { text01: "name1", text02: "email2@gmail.com", text03: "010-1255-5148", text04: "adress3", text05: "adress4", text06: null, text07: null, text08: null, }, ]; const nonNull = [] for(const item of arr) { const obj = {} for(const key in item) { if(item[key]) obj[key] = item[key] } nonNull.push(obj) } console.log(nonNull)