Ich habe ein Ressourcen-Array, das voller Objekte ist. Jedes Objekt hat ein Kategorien-Array voller Objekte. Ich versuche, einen Filter anzuwenden, um nur Ressourcen zurückzugeben, die Kategorieobjekte eines bestimmten Namens haben. Ich habe Probleme mit der Verschachtelung meines Datenobjekts. HierVersuchen, einen Filter auf ein verschachteltes Array voller Objekte anzuwenden
die Daten mit denen ich arbeite:
const resources = [
{
title: 'Learn JS',
categories: [
{
name: 'javascript'
},
{
name: 'css'
}
]
},
{
title: 'Learn CSS',
categories: [
{
name: 'css'
}
]
},
{
title: 'Learn other stuff',
categories: [
{
name: 'jQuery'
},
{
name: 'javascript'
}
]
},
{
title: 'Learn node',
categories: [
{
name: 'node'
}
]
},
{
title: 'Learn React',
categories: [
{
name: 'react'
}
]
},
];
Hier sind meine zwei Versuche. Beide geben leere Arrays zurück. Bin es falsch zu versuchen, maps
und filters
zu verwenden. Ist ein for loop
notwendig?
//GOAL: Return only the resources that have a category with name 'javascript'
const attemptOne = resources.filter((item) => {
return item.categories.forEach((thing, index) => {
return thing[index] === 'javascript'
});
}).map((item) => {
return item;
})
const attemptTwo = resources.filter((item) => {
item.categories.filter((ci) => {
return ci.name === 'javascript'
}).map((nextItem) => {
return nextItem;
});
})
Ich habe Stolper für eine Weile mit diesem um, und ich bin nicht sicher, ob ich bin gerade über verkompliziert es unser was. Danke im Voraus!
Wert von 'forEach' Rückkehr wird nichts erreichen. Vielleicht suchen Sie nach "Array # some". –