javascript 및 es6을 처음 보시는 분들께. firebase와 redux로 반응하는 네이티브 앱을 만들고 있습니다. 내 액션 크리에이터 중 하나는 실제로 검색 창 기능입니다. 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 });
});
};
};
현재 요소로 일치하는 배열에서 객체를 반환하는 대신 false 값을 반환하는 것 같습니다. 내 논리를 연결하려면 여기에 또 다른 기능이 필요합니까? 내가 뭘 놓치고 있니? 어떤 도움을 많이 주시면 감사하겠습니다! 미리 감사드립니다!
'array1.filter (array1.indexOf (element)! == -1)'오류가 발생하지 않습니까? filter의 인수는'array1.filter ((arr1Elem) => array1.indexOf (element)! == -1와 같은 함수 여야합니다. ' –
오! 그게 전부입니다. 대단히 감사합니다! –