작성
·
176
0
답변 2
0
0
안녕하세요 안주환님,
수정, 삭제시에 조금 더 편하게 항목을 검색하기 위해서 ID를 키로 사용했습니다.
예를들어, 다음과 같은 객체가 있다고 하겠습니다.
const obj = {
'1' : { id: '1', text: 'text1' },
'2' : { id: '2', text: 'text2' },
'3' : { id: '3', text: 'text3' }
}
ID가 2인 항목을 찾을때는 다음과 같이 코드를 작성합니다.
obj['2']
ID가 2인 항목의 text를 수정하기 위해서는 다음과 같이 작성하면 됩니다.
obj['2']['text'] = 'change text'
ID가 2인 항목을 삭제하는 경우 다음과 같이 작성하면 됩니다.
delete obj['2']
배열로 사용해 보겠습니다.
const arr = [
{ id: '1', text: 'text1' },
{ id: '2', text: 'text2' },
{ id: '3', text: 'text3' }
]
위와 동일하게 검색, 수정, 삭제를 위해 다음과 같이 작성해야 합니다.
arr.find(item => item.id === '2') // 검색
arr.find(item => item.id === '2')['text'] = 'changed text'; // 수정
arr.splice(arr.findIndex(item => item.id === '2'), 1); // 삭제
만약 find 함수를 모른다면, 특정 ID를 검색할 때 다음과 같이 filter를 이용하면 됩니다.
arr.filter(item => item.id === '2').pop()
혹은 arr.filter(item => item.id === '2')[0]
마지막 삭제도 splice대신 map을 사용해도 됩니다.
방법은 여러가지가 있습니다.
ID를 키로 하는 객체를 사용했을때와 차이점은 "원하는 특정 항목을 찾는 과정" 입니다.
객체로 처리하는게 조금더 편하다고 판단해서 객체로 진행했습니다.
그렇다고, 무조건 제가 선택한 방법이 옳고 좋은 방법은 아닙니다.
모든 방법에는 장단점이 있고, 정답은 하나가 아닙니다.
본인이 생각할때, 진행하는 프로젝트에 더 적합하다고 생각하는 방법을 이용하면 됩니다.
즐거운 하루 되세요
감사합니다.