オブジェクトの配列を受け取る「フィルタ」関数を作成しました。各オブジェクトにはaccountId
プロパティがあります。私の関数は、異なるaccountId
を持つオブジェクトを除外することになっています。しかし、そこにはundefined
オブジェクトがあります。JS find関数が未定義にプッシュ
私の機能に何が問題なのですか?
export const filterItems = (myArray, accountId) => {
let filteredItems = [];
filteredItems.push(myArray.find(items => items.accountId === accountId));
return filteredItems;
}
私は配列ではありません、私の関数にaccountId
を渡すと、出力はその内の1つの項目を持つ配列で、項目が定義されていない - 下記参照:
[
0: undefined
]
何を私は間違っている?
注:1つの要素のみを返すかどうかを指定する場合は、filteredItem ** s **という名前の_Array_を返すのはなぜですか?少なくとも、それはArray.prototype.find()がするものです。たぶんあなたは 'return myArray.filter(...);'を行うことを意図したでしょうか? – blex
'accountId'がパラメータで指定されたものと一致するすべての要素を返したいとします。したがって、最終結果には複数のオブジェクトが存在する可能性があります。一致する 'accountId'を持つオブジェクトがない場合、空の配列を返したいと思います。 – Sam
次に、@ニーナの答えに行く。一致する場合は複数の要素を返す唯一のものですが、何もない場合は空の配列 – blex