Necesita filtrar el arr según los valores de check . No puedo filtrar dentro de la función getItems .
let check = ["DIS_1","DIS_2","DIS_6","DIS_10"] let arr = [{otherProperty: "",cr: [{cc: "DIS_1", cv: "cal1"},{cc: "first", cv: "cal2"},{cc: "DIS_2", cv: "cal3"}]}, {otherProperty: "",cr: [{cc: "DIS_6", cv: "cal4"},{cc: "second", cv: "cal5"},{cc: "DIS_10", cv: "cal6"}]}, {otherProperty: "",cr: [{cc: "third", cv: "cal7"},{cc: "fourth", cv: "cal8"},{cc: "DIS_1", cv: "cal9"}]} ] let expectedOutput = [{otherProperty: "",cr: [{cc: "DIS_1", cv: "cal1"},{cc: "DIS_2", cv: "cal3"}]}, {otherProperty: "",cr: [{cc: "DIS_6", cv: "cal4"},{cc: "DIS_10", cv: "cal6"}]}, {otherProperty: "",cr: [{cc: "DIS_1", cv: "cal9"}]} ] function getItems(arr) { console.log('--arr', arr) } console.log('expect', getItems(arr))Puedes hacerlo con un delineador:
const getItems = (arr) => arr.map(({cr, ...other_properties})=> ({ ...other_properties, cr: cr.filter(item=>check.includes(item.cc))}));Aquí está el ejemplo de trabajo:
let check = ["DIS_1","DIS_2","DIS_6","DIS_10"] let arr = [ {otherProperty: "",cr: [{cc: "DIS_1", cv: "cal1"},{cc: "first", cv: "cal2"},{cc: "DIS_2", cv: "cal3"}]}, {otherProperty: "",cr: [{cc: "DIS_6", cv: "cal4"},{cc: "second", cv: "cal5"},{cc: "DIS_10", cv: "cal6"}]}, {otherProperty: "",cr: [{cc: "third", cv: "cal7"},{cc: "fourth", cv: "cal8"},{cc: "DIS_1", cv: "cal9"}]} ] const getItems = (arr) => arr.map(({cr, ...other_properties})=> ({ ...other_properties, cr: cr.filter(item=>check.includes(item.cc))})); console.log(getItems(arr)); // let check = ["DIS_1","DIS_2","DIS_6","DIS_10"]; let type = { DIS_1: "first", DIS_2: "two", DIS_6: "six", DIS_10: "ten" }; let arr = [{otherProperty: "",cr: [{cc: "DIS_1", cv: "cal1"},{cc: "first", cv: "cal2"},{cc: "DIS_2", cv: "cal3"}]}, {otherProperty: "",cr: [{cc: "DIS_6", cv: "cal4"},{cc: "second", cv: "cal5"},{cc: "DIS_10", cv: "cal6"}]}, {otherProperty: "",cr: [{cc: "third", cv: "cal7"},{cc: "fourth", cv: "cal8"},{cc: "DIS_1", cv: "cal9"}]} ] // using array // const res = arr.map(item => ({...item, cr : item.cr.filter(o => check.includes(o.cc))})); // using object const res = arr.map(item => ({...item, cr : item.cr.filter(o => Object.keys(type).includes(o.cc))})); console.log(res); .as-console-wrapper { max-height: 100% !important; top: 0 }