Quiero filtrar los datos de diaryItems que no coinciden con el valor de la clave usando el valor de la clave de estado interno en JavaScript y ponerlo en la constante de respuesta.
Usé el código así, pero no obtuve el valor deseado. ¿Cómo arreglo el código?
este es mi codigo
const innerstate = { instar: 'egg', feedType: 'feed', feedAmount: 0, inputfeedtime: 0, wormSize: 'third', inputamount: 0, } const diaryItems = [ {diaryItemId: 174, name: "instar"}, {diaryItemId: 175, name: "recordFeedPeriod"}, {diaryItemId: 176, name: "feedPeriod"}, {diaryItemId: 177, name: "feedAmount"}, {diaryItemId: 178, name: "feedType"}, {diaryItemId: 195, name: "totalFeedAmount"}, {diaryItemId: 196, name: "inputfeedtime"}, {diaryItemId: 197, name: "wormSize"}, {diaryItemId: 198, name: "inputamount"} ] (expected answer) const answer = [ {diaryItemId: 174, name: "instar"}, {diaryItemId: 178, name: "feedType"}, {diaryItemId: 177, name: "feedAmount"}, {diaryItemId: 196, name: "inputfeedtime"}, {diaryItemId: 197, name: "wormSize"}, {diaryItemId: 198, name: "inputamount"} ]Intenté este código pero no funciona.
const answer = diaryItems.filter((v) => v.name !== Object.keys(innerState))Estabas cerca. Debe verificar si las claves contienen el nombre de la entrada actual, en lugar de verificar la igualdad de todas las claves:
const innerstate = { instar: 'egg', feedType: 'feed', feedAmount: 0, inputfeedtime: 0, wormSize: 'third', inputamount: 0, }; const diaryItems = [ {diaryItemId: 174, name: "instar"}, {diaryItemId: 175, name: "recordFeedPeriod"}, {diaryItemId: 176, name: "feedPeriod"}, {diaryItemId: 177, name: "feedAmount"}, {diaryItemId: 178, name: "feedType"}, {diaryItemId: 195, name: "totalFeedAmount"}, {diaryItemId: 196, name: "inputfeedtime"}, {diaryItemId: 197, name: "wormSize"}, {diaryItemId: 198, name: "inputamount"} ]; const keys = Object.keys(innerstate); const result = diaryItems.filter(({name}) => keys.includes(name)); console.log(result);Solo necesita verificar si el nombre está en la matriz de claves
const answer = diaryItems.filter((v) => Object.keys(innerstate).includes(v.name) )