반응형
어레이에서 고유 ID를 필터링하는 VueX Getter
객체가 포함된 배열을 필터링하여 고유한 메시지가 포함된 각 메시지를 가져오려고 함correspondence_id
.
필터링할 위치의 getters.
getCorrespondedUsers: (state) => {
return state.messages.unique
}
모든 메시지에 다음이 포함됨correspondence_id
하지만 지금은 모든 메세지만 볼 수 있지만, 나는 단지 독특한 사람들을 잡고 싶다.이것의 목적은 메세지가 있지만, 왼쪽에는 내가 메세지를 보낸 사람 하나하나를 보여주고 싶다(하지만 어떻게 하면 한 사람 한 사람씩만 표시할 수 있을지 잘 모르겠다).
메시지를 필터링하여 각 메시지를 고유한 메시지로 반환하는 방법correspondence_id
?
당신은 코드의 가독성을 유지하기 위해 lodash를 사용할 수 있다.예:
// don't forget to import only what
// you really need, not the whole library
import uniqBy from 'lodash/uniqBy'
export default {
getCorrespondedUsers: state => uniqBy(state.messages, 'correspondence_id')
}
이 문제에 대한 해결책이 있다.
이렇게 할 수 있다.
getCorrespondedUsers: (state) => {
return state.messages.filter((obj, pos, arr) => {
return arr.map(mapObj => mapObj["corresponde_id"]).indexOf(obj["corresponde_id"]) === pos;
});
}
여기서 시험해 보았다.
잘 됐으면 좋겠어!
참조URL: https://stackoverflow.com/questions/51725172/vuex-getter-to-filter-unique-ids-from-array
반응형
'programing' 카테고리의 다른 글
테스트를 위해 페이지의 모든 데이터를 덤핑하는 Vue 변수 (0) | 2022.05.11 |
---|---|
Vuex: getter는 기능해야 하지만 모듈 "customer"의 "getters.default"는 {}임 (0) | 2022.05.11 |
child의 @change 이벤트에서 선택된 행 인덱스를 가져오는 방법 요소 UI에서 선택 드롭다운? (0) | 2022.05.11 |
Vuejs, 상대 경로로 구축하기 어려움 (0) | 2022.05.11 |
Vuetify - 중첩된 목록 항목이 있는 탐색 드로어 (0) | 2022.05.11 |