오늘부터 새로운 챕터에 들어가서
array에 대해 자세하게 배워본다~~
제일 먼저 array slice
let arr = ['a', 'b', 'c', 'd', 'e'];
console.log(arr.slice(2));
index 2인 c부터 시작해 c,d,e이렇게 새로운 array가 되어 나온다.
string에서도 알아봤듯이 array에서의 slice도 맨 마지막 애는
포함 안되서 나오는것을 알 수 있다.
console.log(arr.slice(2, 4));
이렇게 해주면 index2부터 시작해 index4는 짤린다.
그래서 콘솔에
['c', 'd']
이렇게 나옴...
console.log(arr.slice(-2));
-는 뒤에서 두개니까
d,e 두개가 array에 담긴다 ㅋㅋ
console.log(arr.slice(1,-2));
이건 index 1번째부터 뒤에서부터 두개가 안들어가서
콘솔로 보면
['b', 'c']
이렇게 나옴 ..
console.log(arr.slice());
console.log([...arr]);
이 두아이들은 array를 shallow copy하는거~~
똑같은 array가 복제됨
다음으로 splice에 대해 알아보자..
splice를 보면 결과가 slice와 똑같이 나오는데
예를 들어
console.log(arr.splice(2));
이렇게 하면 결과가 슬라이스(2)와 똑같다.
근데 다른점은 슬라이스는 오리지널 array가 변형이 안되는반면에
splice는 오리지널 array가 변형됨
콘솔로 해보면 c,d,e가 제외된 a,b가 array로 남는다.
arr.splice(-1);
splice는 이렇게 맨마지막 element는 제거하는데 많이 사용된다고 한다.
위의 결과는 당연히 이렇게 나옴
['a', 'b', 'c', 'd']
근데 splice에서 이렇게 두개 파라미터를 가지면
이 숫자의 index에 있는 애들이 지워지는거라고함
arr.splice(1, 2);
이렇게 있으면 index1에 있는 애와 index2에 있는애가
지워지는거니까 b,c가 지워져서 a,d만 남음
다음으로 배울건 Reverse! 단어 뜻과 같이
배열 안에 있는애들이 reverse됨...
근데 이것도 오리지널 array변경된다.
let arr = ['a', 'b', 'c', 'd', 'e'];
const arr2 = ['j', 'i', 'h', 'g', 'f'];
console.log(arr2.reverse());
console.log(arr2);
결과는 이렇게 나옴
['f', 'g', 'h', 'i', 'j']
['f', 'g', 'h', 'i', 'j']
다음으로 배운건 concat!
요건 오리지널 array를 mutate하지 않는다.
const letters = arr.concat(arr2);
console.log(letters);
console.log([...arr, ...arr2]);
첫번째는 concat 방법 쓴거구 두번째는 예전에 배웠던
spread operator를 사용한것.
마지막으로 join!!!!
console.log(letters.join(' - '));
결과는 이렇게 나온다.
a - b - c - d - e - f - g - h - i - j