javascript Array의 특정 원소를 지우는 법을 정리한다. python에서는 다음과 같은 코드로 같은 작업을 할 것이다.

a = [1, 2, 3, 4]
a.remove(3)


다음은 javascript 코드이다. 지우고 싶은 원소의 인덱스를 찾아서 splice 함수를 통해서 지운다.

let a = [1, 2, 3, 4]
const idx = a.indexOf(3)
if (idx > -1) a.splice(idx, 1)


단순 array가 아닌 object를 담는 array에서 특정 field 값을 가지는 object를 지우고 싶다면 다음과 같은 방식으로 할 수 있다. functional programming style의 find 함수를 이용해서 원하는 object를 찾고, 그 이후는 같은 논리로 코드가 진행된다.

let a = [ {f1: 1, f2: 2}, {f1: 3, f2: 4} ]
const itemToFind = a.find(function(item) {return item.f1 === 1})
const idx = a.indexOf(itemToFind)
if (idx > -1) a.splice(idx, 1)


find 함수 대신 findIndex 함수를 이용하면 중간 단계를 건너 뛸 수 있다.

let a = [ {f1: 1, f2: 2}, {f1: 3, f2: 4} ]
const idx = a.findIndex(function(item) {return item.f1 === 1}) // findIndex = find + indexOf
if (idx > -1) a.splice(idx, 1)



참조 링크

Array.prototype.splice
https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

Array.prototype.find
https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/find

Array.prototype.findIndex
https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex

'Programming > Javascript' 카테고리의 다른 글

javascript array의 원소 삭제하기  (0) 2017.05.22
NVM, Node Version Manager 소개  (0) 2017.05.07