여니의 프로그래밍 study/JavaScript

[Javascript] 자바스크립트 배열

여니's 2021. 3. 26. 15:43

let arr=new Array(); // 방법1
let arr =[]; // 방법2

위 문법을 사용하면,

배열을 생성할 수 있다.

 

배열은 큐, 스택 구조를 구현할 때 쓰인다.

 

1. pop()

: 배열 끝 요소를 제거하고, 제거한 요소를 반환한다.

 

2. push(x1,x2...)

: 배열 끝에 요소를 추가한다.

 

3. shift()

: 배열 앞 요소를 제거하고 반환한다.

 

4. unshift(x1,x2...)

: 배열 앞에 요소를 추가한다.

 

※ push와 pop의 속도가 

shift와 unshift보다 훨씬 빠르다


배열 내부 동작 원리!

> 배열의 본질은 객체이다.

> 원시형이 아니다.

> 배열은 객체와 마찬가지로 참조를 통해 복사된다.

> 배열은 순서가 있는 자료를 저장하는 용도로 만들어졌기에,

임의의 키를 사용해야 한다면 배열보단 [{}가 적합하다.

 

 

- length 프로퍼티

> array 생성자의 길이 속성이다.

> 배열 내 요소의 개수를 나타내는 것이 아니라,

가장 큰 인덱스에 1을 더한 값이다.

 

※ 자바스크립트 개념

js에는 클래스라는 개념이 없어서

기존의 객체를 복사하여

새로운 객체를 생성하는 프로토타입 기반의 언어

프로토타입 기반 언어는

객체 원형인 프로토타입을 이용하여 새로운 객체를 만들어낸다.

 

 

 

참고 출처

www.nextree.co.kr/p7323/

 

JavaScript : 프로토타입(prototype) 이해

JavaScript는 클래스라는 개념이 없습니다. 그래서 기존의 객체를 복사하여(cloning) 새로운 객체를 생성하는 프로토타입 기반의 언어입니다. 프로토타입 기반 언어는 객체 원형인 프로토타입을 이

www.nextree.co.kr


// 배열과 관련된 연산 문제
let styles=['Jazz','Blues'];
styles.push('Rock-n-Roll');
styles[Math.floor((styles.length-1)/2)]="Classics";
print(styles.shift());
print(styles.unshift('Rap','Reggae');

pop,push,shift,unshift 말고도 메서드가 더 있다.

배열의 다양한 메서드!

1. splice

> 이 메서드를 사용하면,

요소의 추가, 삭제, 교체가 모두 가능하다!

배열.splice(index,deletecount, elem1,...elemM]

let arr=['I','study','JavaScript'];
arr.slice(1,2);
alert(arr); // ["I"]
arr.slice(1,0,"hello");
alert(arr)' // ["I","hello"]

참고로, splice는!

삭제된 요소로 구성된 배열을 반환한다.

 

2. slice

splice보다 훨씬 간단하다.

start 인덱스부터, end를 제외한 인덱스까지의 요소를 복사한

새로운 배열을 반환한다.

arr.slice(start,end);

 

이런 방식은!

기존의 배열을 건드리지 않고 조작해서

새로운 배열을 만들고자 할 때 자주 사용된다.

 

 

ko.javascript.info/array-methods

 

배열과 메서드

 

ko.javascript.info