본문 바로가기
공부/프로그래밍

[javascript] 배열 내 오브젝트의 특정 값 찾기 및 삭제하기

by demonic_ 2017. 10. 19.
반응형

가령 배열에 이런식으로 값이 들어있다고 가정해보자.


var arr = [

{code: 11, name: "주문상태"}

, {code: "22", name: "접수"}

, {code: "33", name: "승인"}

, {code: "44", name: "완료"}

, {code: "55", name: "취소대기"}

, {code: "66", name: "취소"}

]


여기서 특정 코드를 제거하려면 for문을 쓰면 되겠다 싶겠지만, for문을 써서 제거를 할 경우 index(순서)가 꼬여서 엉뚱한게 제거될 때가 있다. 

그래서 다음과 같은 명령어로 한번에 지울 수 있다.



// 33, 55란 코드를 가진 오브젝트를 제거하고 싶은 경우

arr.splice(arr.map(x => x.code).indexOf('33'), 1);

arr.splice(arr.map(x => x.code).indexOf('55'), 1);


// 결과

var arr = [

{code: 11, name: "주문상태"}

, {code: "22", name: "접수"}

, {code: "44", name: "완료"}

, {code: "66", name: "취소"}

]



여기서 사용되는 명령어인 splice 는 배열을 자를때 쓰는거고, indexOf 를 사용하기 위해 map으로 우선 치환하여 찾을 수 있다. 




반응형

댓글