파이썬이랑 자바스크립트는 비슷한 것 같으면서도 참 다른 언어인것 같다.
앞으로 파이썬에는 없던 개념이나 파이썬과는 좀 다른 것을 조금씩 정리해 보려고 한다.
파이썬에서는 두 리스트를 병합할 때 +
만으로 서로 병합시킬 수 있었는데 자바스크립트의 경우에는 파이썬과는 다르게 string타입으로 반환을 했다.
array.concat([value1[, value2[, ...[, valueN]]]])
const num1 = [1, 2, 3];
const num2 = [4, 5, 6];
const num3 = [7, 8, 9];
num1.concat(num2, num3);
// 결과: [1, 2, 3, 4, 5, 6, 7, 8, 9]
const alpha = ['a', 'b', 'c'];
alpha.concat(1, [2, 3]);
// 결과: ['a', 'b', 'c', 1, 2, 3]
파이썬에서는 remove
메소드를 사용하면 원하는 원소를 리스트에서 쉽게 삭제할 수 있었다.
a = [1,2,3,4]
a.remove(2)
print(a)
>>>
[1,3,4]
자바스크립트에서도 저런 방식으로 하려면 remove의 기능을 하는 함수를 만들어줘야 했고 가장 간편한 방법은 indexOf
와 splice
를 사용한 방법인것 같다. 파이썬의 del
과 비슷!
let a = [1,2,3,4]
const idx = a.indexOf)2)
if (idx > -1() a.splice(idx,1) //array에 없을 경우 -1 리턴하므로
// 결과 : [1,3,4]
위에서 사용된 splice()
메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start
deleteCount
(Optional)deleteCount
를 생략하거나 값이 array.length - start
보다 크면 start
부터 모든 요소를 제거deleteCount
가 0 이하라면 어떤 요소도 제거하지 않는다. 이때는 최소한 하나의 새로운 요소를 지정해야 한다.item1, item2, ...
(Optional)splice()
는 요소를 제거만 한다.3
번 인덱스에서 한 개 요소 제거var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);
// removed is ["mandarin"]
// myFish is ["angel", "clown", "drum", "sturgeon"]
-2
번 인덱스에서 한개 요소 제거 후 2개 요소 추가var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
console.log(myFish);
var removed = myFish.splice(-2, 1, 'parrot', 'anemone');
console.log(myFish);
// before -> [ 'angel', 'clown', 'mandarin', 'sturgeon' ]
after -> [ 'angel', 'clown', 'parrot', 'anemone', 'sturgeon' ]
// removed is ["mandarin"] , added is ['parrot', 'anemone']
2
번 인덱스를 포함해서 이후의 모든 요소 제거var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);
// myFish is ["angel", "clown"]
// removed is ["mandarin", "sturgeon"]