ここではjavascriptとes6の初心者です。私はfirebaseとreduxと反応ネイティブアプリを構築しています。私のアクションクリエイターの1人は、実際には検索バーの機能です。 Firebaseからこのコードでデータを取得しています:.filter()で.indexOf()を使用する際の問題
export const searchResult =() => {
const { currentUser } = firebase.auth();
return (dispatch) => {
firebase.database().ref(`/users/${currentUser.uid}/entries`)
.on('value', snapshot => {
const obj = snapshot.val();
この部分は機能しています。次に、データを配列に変換したいのですが、オブジェクトの代わりに使用します。
const array1 = Object.keys(obj).map(function(key) {
return [obj[key]];
});
また、これは完全に実行されます。それは私が間違っているコードの次のビットです、ちょうどそれを修正する方法を知らない。私は検索バーに何が入っているかに応じてarray1のフィルタを返そうとしています。ここでは、要素にハードコードされた検索バーがあります(コードを取得すると、これを切り替えます)。今のよう
const element = '0';
const array2 = array1.filter(array1.indexOf(element) !== -1);
dispatch({ type: SEARCH_RESULT_SUCCESS, payload: array2 });
});
};
};
、私はこれがちょうど偽のブール値を返すのではなく、要素に一致する配列からオブジェクトを返しているかなり確信しています。私のロジックを橋渡しするためにここに別の機能が必要ですか?私は何が欠けていますか?どんな助けでも大歓迎です!前もって感謝します!
'array1.filter(array1.indexOf(element)!== -1)'はエラーを送出していませんか? filterの引数は 'array1.filter((arr1Elem)=> array1.indexOf(element)!== -1 'のような関数でなければなりません。 –
ああ!それは完全にそれです。感謝万円! –