Utworzono funkcję "filtru", która odbiera tablicę obiektów. Każdy obiekt ma właściwość accountId
. Moja funkcja ma na celu odfiltrowanie obiektów, które mają inny accountId
. Pchnie tam jednak obiekt undefined
.Funkcja wyszukiwania JS nieokreślona
Co jest nie tak z moją funkcją?
export const filterItems = (myArray, accountId) => {
let filteredItems = [];
filteredItems.push(myArray.find(items => items.accountId === accountId));
return filteredItems;
}
Kiedy zdać accountId
do mojej funkcji, które nie są w tablicy, to wyjście jest tablicą z jednej pozycji w nim, a pozycja jest niezdefiniowana - patrz poniżej:
[
0: undefined
]
Co czy robię źle?
Na marginesie: Dlaczego twoja funkcja zwraca _Array_, o nazwie filtersItem ** s **, jeśli masz zamiar zwrócić tylko jeden element lub żaden? Przynajmniej to robi 'Array.prototype.find()'. Może chciałeś zrobić 'return myArray.filter (...);'? – blex
Chcę zwrócić wszystkie elementy, których 'accountId' odpowiada wartości określonej w parametrze. W rezultacie może to być więcej niż jeden obiekt. Jeśli żaden z obiektów nie ma pasującego 'accountId', chcę zwrócić pustą tablicę. – Sam
Następnie przejdź do odpowiedzi @ Niny. Jest to jedyny, który zwróci wiele elementów, jeśli pasują, oraz pustą tablicę, jeśli żadna nie zostanie wykonana. – blex