JavaScript DAY04 (2022.10.23)

준영·2022년 10월 23일
1
post-thumbnail
/* JavaScript DAY03 2022.10.23 */

// 배열 메서드 (2)  

// splice() ## 배열에 원소를 삽입하거나 원소를 제거하려 할 때에 사용할 수 있는 메서드이다.
// 또한, slice(), concat()과 달리 새로운 배열을 만들어 반환하지 않는다.
// 첫 번째의 전달인자는 배열 상에서 삽입 혹은 삭제 작업이 시작할 위치를 지정하고,
// 두 번째 전달인자는 배열에서 삭재할 원소들의 개수를 지정한다.
// 두 번째 전달인자를 지정하지 않으먄, 첫 번째 전달인자로 지정한 위치에서 마지막 원소까지 잘라낸다!
// 세 번째 전달인자를 지정하면, 첫 번째 전달인자가 지정하는 위치에서 이어 붙일 원소들을 지정한다.

const a = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

// 첫 번째 전달인자만 지정한 경우... (index 4부터 마지막 index까지 잘라낸다)
// 출력결과: [ 5, 6, 7, 8 ]를 반환하고 a는 이제 [ 1, 2, 3, 4 ]가 된다.
console.log(a.splice(4));
console.log(a);

// [ 1, 2, 3, 4 ] inex 1부터 2개의 원소인 [2, 3]을 반환하고 asms [ 1, 4 ]가 된다.
console.log(a.splice(1, 2));
console.log(a);

// [2, 3]을 제거하고, 그 사이에 세 번째 전달인자를 삽입한다.
const b = [ 1, 2, 3, 4, 5 ];
console.log(b.splice(1, 2, "세 번째 전달인자!"));
// [ 1, '세 번째 전달인자!', 4, 5 ]
console.log(b);

/* ---------------------------------------------------------------- */

// push() ## 지정한 원소들을 배열의 끝 부분에 이어 붙이고 배열의 새로운 길이를 반환한다.
// pop() ## push()와 반대로 배열의 마지막 원소를 제거하고 배열의 길이를 감소시킨 후 배열에서 제거한 원소를 반환한다.

// push(), pop()을 사용해서 선입후출 스택을 구현해보자!

// stack: []
const stack = [];

// stack: [1, 2] ... 2를 반환
stack.push(1, 2);

// stack: [1] ... 2를 반환
stack.pop();

// stack: [1, 3] ... 2를 반환
stack.push(3);

// stack: [1] ... 3을 반환
stack.pop();

// stack: [1, [4, 5]] ... 2를 반환
stack.push([4, 5]);

// stack: [1] ... [4, 5]를 반환
stack.pop();

// stack: [] ... 1을 반환
stack.pop();

/* ---------------------------------------------------------------- */

// unshift() ## 지정한 원소들을 배열의 맨 앞에 삽입한다. 길이를 반환
// shift() ## 배열의 첫 번째 원소를 제거한 후, 나머지 배열 원소들을 전부 앞으로 옮긴다. 한마디로 첫 번째 원소가 제거되면서 생기는 빈 공간을 매우고 제거한 원소를 반환한다.

// c: []
const c = [];

// c: [1]
c.unshift(1);

// c: [22, 1]
c.unshift(22);

 // c: [1]
c.shift();

// c: [3, [4, 5], 1]
c.unshift(3,[4,5]);

// c: [[4, 5], 1]
c.shift();

// c: [1
c.shift();

// c: []
c.shift();





profile
개인 이력, 포폴 관리 및 기술 블로그 사이트 👉 https://aimzero-web.vercel.app/

2개의 댓글

comment-user-thumbnail
2022년 11월 4일

늘 열심히 하시는 모습에 저도 의지가 불타오르네요🔥 항상 화이팅입니다 준영님!

1개의 답글