TIL20.배열

조연정·2020년 9월 2일
0
post-thumbnail

배열도 객체이다.

배열(array)

한개의 변수 안에 여러개의 값을 순차적으로 저장할 때 사용한다. 배열 안의 있는 값들을 요소(element)라고 한다. 순서가 있는 값을 만들 때에는, 객체보다 배열을 활용하는 것이 효율적이다.

indexing

인덱스를 통해서 요소에 접근하는 것을 인덱싱이라고 한다. 배열의 첫번째 요소에 접근하기 위해서는 1번이아니라 0번 인덱스를 입력해야한다.

//index == property name
//index는 0부터 시작
console.log(배열이름[index]);

length property

배열이 가지고 있는 요소의 총 갯수를 표시해준다.

let members = ['가가', '나나', '다다', '라라', '마마'];

console.log(members.length); //점표기법
console.log(members['length']); //대괄호표기법
console.log(members[members.length - 1]); //'length'를 활용해서 배열의 마지막 요소에 접근

5
5
마마

배열에 요소 추가, 수정

배열에 요소를 추가하고 싶을 때에는 다음에 예시와 같이 간단하게 추가할 수 있다.
members[5] = '바바';
배열에 요소를 수정하고 싶을 때에는 요소추가방법과 똑같이 수정하고자 하는 값을 입력해주기만 하면 된다. members[0] ='가가가';

splice

배열에 요소를 완전히 삭제하고 싶을 때에는(객체에서 사용한 delete연산자를 배열에서 사용하면 값 자체는 지워지지만 요소자체는 empty로 남아있게된다.) splice라는 메소드를 사용힌다. 이 메소드를 통해 수정, 추가, 삭제가 전부 가능하다.

let members = ['가가', '나나', '다다', '라라', '마마'];

members.splice(1); 
//splice를 이용해서 1번 포함 이후의 모든 인덱스를 삭제
console.log(members);
// expected output: ['가가'];

members.splice(1, 2);
//1번인덱스부터 요소 2개를 지움
console.log(members);
// expected output: ['가가', '라라', '마마'];

members.splice(1, 0, '가가가', '나나나');
//1번인덱스 자리에 '가가가','나나나'를 추가
// expected output: ['가가', '가가가', '나나나', '나나', '다다', '라라', '마마']

배열의 다양한 메소드

shift(): 배열의 첫 요소를 삭제한다.

pop(): 배열의 마지막 요소를 삭제한다.

unshift(value): 배열의 첫 요소로 값을 추가한다.

push(value): 배열의 마지막 요소로 값을 추가한다.

indexOf/lastIndexOf(item): 배열에서 특정 값을 찾으려면 이 메소드를 사용하면 된다. 포함되어 있다면 item이 있는 인덱스가 리턴되고, 포함되어있지 않다면 -1이 리턴된다. 여러 번 포함되어 있는경우, 처음 발견된 인덱스가 리턴된다. lastIndexOf메소드는 반대로 뒤에서부터 탐색을 한다. 중복되어 있는 값이 있다면, 뒤에 있는 값의 인덱스를 표시해준다.

includes(item): 배열안에 특정 값이 있는지 없는지 확인할 때 사용한다. 있을 경우 true, 없을 경우, false를 리턴한다.

reverse(): 배열의 순서를 뒤집는다.

for of 반복문

for in은 프로퍼티네임 in 객체/for of는 요소 of 배열

for of 구조

let fruits = ['apple', 'banana', 'mango', 'pineapple']

for (i = 0; i < fruits.length; i++) {
	console.log(fruits[i]);
}

// for ... of
for ( element of fruits) {
	console.log(element);
}
//expected output 
apple
banana
mango
pineapple
profile
Lv.1🌷

0개의 댓글