programing

어레이에서 고유 ID를 필터링하는 VueX Getter

prostudy 2022. 5. 11. 22:04
반응형

어레이에서 고유 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

반응형