Angenommen, ich habe zwei Arrays - eine als Präferenz in der Reihenfolge und eine andere den Datensatz und ich möchte das erste Element aus dem Datensatz mit übereinstimmenden ersten Präferenz.Filterung und Rückgabe Element in Array nach bestimmten Vorzug
Zum Beispiel
const userPref = ['banana', 'apple', 'peach'];
const givenFruits = [
{ name: 'apple', color: 'red' },
{ name: 'orange', color: 'orange' },
{ name: 'pear', color: 'yellow' },
{ name: 'cherry', color: 'red' },
{ name: 'grape', color: 'red' },
{ name: 'peach', color: 'red' },
{ name: 'coconut', color: 'brown' }
];
function findFavFruit() {
userPref.forEach((pref) => {
givenFruits.forEach((fruit) => {
if(pref === fruit.name) {
return fruit;
}
});
});
}
console.log('findFavFruit(): ' + JSON.stringify(findFavFruit(), null, 2));
Diese immer wiederkehr undefined
. Es soll apple
NUR zurückgeben, da es Benutzer zuerst übereinstimmende Präferenz ist und zuerst in gatedFruits gefunden wird.
Was mache ich oben falsch falsch? Und gibt es einen saubereren Weg (vermeiden Sie doppelte forEach
) in Javascript?
Ihr 'findFavFruit' gibt nichts zurück. Denken Sie daran, 'forEach' ist eine Funktion höherer Ordnung. – Dai