Ich habe eine "Filter" -Funktion erstellt, die ein Array von Objekten empfängt. Jedes Objekt hat eine accountId
Eigenschaft. Meine Funktion soll Objekte filtern, die einen anderen accountId
haben. Es drängt jedoch ein undefined
Objekt hinein.JS finde Funktion undefiniert drücken
Was ist falsch an meiner Funktion?
export const filterItems = (myArray, accountId) => {
let filteredItems = [];
filteredItems.push(myArray.find(items => items.accountId === accountId));
return filteredItems;
}
Wenn ich eine accountId
meiner Funktion übergeben, die nicht in dem Array ist, ist die Ausgabe ein Array mit einem Element darin und das Element nicht definiert ist - siehe unten:
[
0: undefined
]
Was mache ich falsch?
Nebenbei: Warum gibt Ihre Funktion einen _Array_, namens filteredItem ** s ** zurück, wenn Sie nur ein Element oder keines zurückgeben wollen? Zumindest macht das 'Array.prototype.find()'. Vielleicht wollten Sie 'return myArray.filter (...);'? – blex
Ich möchte alle Elemente zurückgeben, deren 'accountId' mit der im Parameter angegebenen übereinstimmt. Es kann also mehr als ein Objekt im Endergebnis sein. Wenn keines der Objekte eine übereinstimmende 'accountId' hat, möchte ich ein leeres Array zurückgeben. – Sam
Dann gehen Sie für @ Ninas Antwort. Das ist das einzige, das mehrere Elemente zurückgibt, wenn sie übereinstimmen, und ein leeres Array, falls keines vorhanden ist. – blex