배열
배열이란?
- 배열이란 쉽게 말하면 창고(저장장소)라고 생각하면 된다.
배열 선언하는 방법은 2가지로 나눠진다.
- 리터널 방식으로 만들기
- Array 객체의 인스턴스로 만들기
예로 한번 살펴보자!
1. 리터널 방식
var numbers = ['one', 'two' , 'three'];
numbers
결과값 : ['one', 'two' , 'three']
2. Array 객체의 인스턴스
var numbers = new Array("one", "two", "three");
number
결과값 : ["one", "two" , "three"]
배열 호출하는 방법
위의 예제를 재활용하여 설명하겠습니다.
var numbers = ['one', 'two' , 'three'];
numbers의 첫 번째 저장장소에는 'one'이 있습니다. 사람들이라면 그러면 1번쨰 저장장소에는 'one'이
있네요라고 할 겁니다.
하지만 컴퓨터는 첫 번째 장소라고 하지않고 0번째 저장장소라고한다. 이유는 컴퓨터가 0부터
숫자를 시작하기 때문이다.
고로 numbers 0번째는 'one'이 된다.
그러면 'three'는 몇 번째일까?
답은 numbers의 2번째가 'three'가 된다.
호출방법 : 변수명 [ 인덱스(저장위치) ]
var numbers = ['one', 'two' , 'three'];로 호출해보자
'one'을 호출할려고 하면 변수명 number이고 인덱스(저장위치)가 0번째이였으니 number[0]을 입력하면
'one'이 호출된다.
concat
concat
- 기존의 배열에 또 다른 배열이나 값을 합쳐서 새로운 배열을 만드는 함수
- 원본(원래 배열)을 건들이지 않는다!
var nums = ["1","2","3"];
var chars = ["a","b","c","d"];
nums.concat(chars); //nums 배열에 chars 배열 연결
결과값 : ["1", "2", "3", "a", "b", "c", "d"]
join
join
- 배열 요소를 연결해서 나열할 때 각 요소 사이에 넣을 구분 기호가 필요한데 join() 은 이 기호를 직접 지정할 수 있음
- 원본(원래 배열)을 건들이지 않는다!
예)
var num = [1,2,3,4];
num.join('-');
결과값 : "1-2-3-4";
결과값처럼 배열의 요소 사이사이에 넣을 수 있다.
num.join('');
결과값 : "1234";
또한 요소없이도 붙일 수 있다.
push와 pop
push
- push는 배열의 맨 끝에 새로운 요소를 추가하는 함수
- 새 요소가 추가된 후의 배열 요소의 개수가 반환됨
- concat( ), join( ) 과 다르게 원본(원래 배열)이 바뀜
var nums = ["1","2","3"]
nums.push("4") //nums 배열 맨 끝에 "4"와 "5"요소 추가
nums //호출
결과값 : ["1", "2", "3", "4"]
원본이 바뀌어 호출이 추가된 상태로 나옴
pop
- pop은 배열의 맨 끝에 요소를 제거하는 함수
- 맨 끝 요소가 제거된 후의 배열 요소의 개수가 반환됨
- push와 같은 원본(원래 배열)이 바뀐다.
var nums = ["1", "2", "3", "4"]
nums.pop("4") //nums 배열 맨 끝에 "4"와 "5"요소 추가
nums //호출
결과값 : ["1","2","3"]
원본이 바뀌어 호출이 됨
unshift와 shift
unshift
- 배열의 맨 앞 에 새로운 요소를 추가하는 함수
- 새 요소가 추가된 후의 배열 요소의 개수가 반환됨
- 원본(원래 배열)이 바뀐다.
var nums = ["1", "2", "3"]
nums.unshift("4") //nums 배열 맨 끝에 "4"와 "5"요소 추가
nums //호출
결과값 : ["4", "1", "2", "3"]
shift
- 배열의 맨 앞 요소를 제거하는 함수
- 맨 앞 요소가 제거된 후의 배열 요소의 개수가 반환됨
- 원본(원래 배열)이 바뀐다.
var nums = ["4", "1", "2", "3"]
nums.shift("4") //nums 배열 맨 끝에 "4"와 "5"요소 추가
nums //호출
결과값 : ["1", "2", "3"]
splice, slice, substr
splice
- splice는 배열의 중간 부분에 요소를 추가하거나 삭제할 때 사용
- 한꺼번에 2개 이상의 요소 를 추가하거나 삭제할 때도 사용
- 원본(원래 배열)이 바뀐다.
- 인수가 **** 1 개일 때
- 괄호 안의 인수는 그 배열의 인덱스 값을 가리킨다. 이 때 인수가 가리키는 인덱스의 요소 ~ 배열의 끝 요소까지 삭제 함
var numbers = [0,1,2,3,4,5];
numbers.splice(2); //인덱스 2(세 번째 요소)부터 끝까지 삭제
결과값 : [2, 3, 4, 5]
numbers;
결과값 : [0, 1] //원본이 바뀐다.
- 인수가 2 개 일 때
- splice(첫번째 인수 : 인덱스 값, 두번째 인수 : 삭제할 개수)
var study = ["html", "css", "web", "jQuery"];
study.splice(2,1);
결과값 : ["web"];
study
결과값 : ["html", "css", "jQuery"];
- 인수가 3개 이상일 때
- splice(첫번째 인수 : 인덱스 값, 두번째 인수 : 삭제할 개수, 세번째 인수 : 앞서 삭제한 위치에 새로 추가할 요소를 지정)
study.splice(2, 1, "js");
결과값 : ["jQuery"]
study
결과값 : ["html", "css", "js"]
- 기존 배열의 요소를 삭제하지 않고 새로운 요소 추가할 때는 삭제할 개수를 지정하는 두 번째 인수에 0을 입력
study.splice(2, 0, "jQuery")
결과값 : []
study
결과값 : ["html", "css", "jQuery", "js"]
slice
- slice는 여러 개의 요소를 꺼낸다 ( 삭제 X)
- 배열에서 요소를 꺼낸다는 점은 pop(), shift() 와 같음
- 첫번째 인수 : 시작 인덱스 값, 두번째 인수 : 끝 인덱스 값 -1 ( 끝 인덱스 값의 직전 까지만 추출 )
- 원래 배열은 변경되지 않음 => 진짜 ' 추출 ' 만 함
var colors = ["red", "green", "blue", "white", "black"];
colors.slice(2);
결과값 : ["blue", "white", "black"]
colors
결과값 : ["red", "green", "blue", "white", "black"]
연습문제
위에 연습했던 colors 배열에서 “blue”와 “white”만 추출하려면 slice() 함수를 어떻게 지정해야 할까요
정답 : colors.slice(2,4);
결과값 : ['blue', 'white']
'프론트엔드 공부한 거 정리하는 장소' 카테고리의 다른 글
Next.js 애플리케이션에서 react-query를 사용해야 하는 이유 (3) | 2024.07.15 |
---|---|
Electron 프레임워크 기술에 대한 소개 및 구현? (0) | 2023.08.16 |
자바스크립트 4일차 데이터 타입과 객체 (2) | 2023.05.11 |
자바스크립트 3일차 함수선언과 호출 (0) | 2023.05.10 |
자바스크립트 2일차 연산자와 제어문 정리 (0) | 2023.05.09 |