- 배열과 객체란 JavaScript에서 대량의 데이터를 쉽게 다룰 수 있게 해주는 데이터 타입이다.
- 배열([ ]) : 순서( index(인덱스); 0부터 번호를 매김 )가 있는 값( element(요소) )
let myNumber = [73, 98, 86, 61, 96]; //배열(array)의 예시
// ☞ 배열 안에 배열을 넣을 수도 있다. [[1, 2], [3, 4], [5, 6]]
myNumber[3]; //myNumber라는 배열의 3번째 인덱스를 *조회*
//61
//참고로 5번째 인덱스를 조회하면 undefined가 찍힘.
// ☞ 배열 안의 배열을 조회하려면 myNumber[1][0]; ->3 이런 식으로 중첩하면 됨.
myNumber[3] = 200; //myNumber라는 배열의 3번째 인덱스 값을 *변경*
//myNumber = [73, 98, 86, 200, 96]
myNumber.length; //배열의 *길이*
//5
//온점(.)을 이용하여 변수가 가지고 있는 속성(property)에 접근할 수 있다.
myNumber.push(22); //새로운 요소(element)를 배열 끝에 *추가*
//myNumber = [73, 98, 86, 200, 96, 22]
myNumber.pop(); //배열의 마지막 값을 *삭제*
//myNumber = [73, 98, 86, 200, 96]
▶ 배열이 빈 배열인지 확인하는 방법?
arr.length === 0
왜 arr === [] 가 아닐까?
두 배열의 주소가 다르기 때문. (참조 자료형의 ===은 주솟값이 같은 지를 확인함.)
그러므로 [] === [] 는 false.
- 배열과 반복문
let myNum = [0, 1, 2, 3];
//반복문을 이용해 배열의 요소를 한번씩 출력하려면?
for(let n = 0; n < myNum.length; n++) {
console.log(myNum[n]);
}
//배열의 모든 요소를 누적해서 더하려면?
let sum = 0;
for(let n = 0; n < myNum.length; n++) {
sum = sum + myNum[n];
}
console.log(sum); //6
- 배열 (내장) 메서드
● Array.isArray : 배열인지 아닌지 판별
● push, pop : 배열의 뒤쪽에 element 넣고 빼기 (위에 사용 예시 있음)
unshift, shift : 배열의 앞쪽에 element 넣고 빼기
● indexOf, includes : element의 존재 여부 확인
해당 요소가 있으면 그 index가 나오고, 없으면 -1이 나온다.
그러므로 존재 여부를 확인하고 싶으면,
이런 식으로 검사할 수 있다.
물론 이렇게 includes를 사용할 수도 있음.
하지만 includes는 indexOf보다 호환성이 더 낮다. (인터넷 익스플로러 X )
(+) console.table(); 배열을 시각화하여 보여줌.
(+) slice() : 배열의 begin부터 end까지(end 포함X)에 대한 얕은 복사본을 새로운 배열 객체로 반환.
원본 배열은 바뀌지 않음.
arr.slice(begin, end)
// begin : 0을 시작으로 하는 추출 시작점에 대한 인덱스.
// 음수 인덱스는 배열의 끝에서부터의 길이를 나타냄.
// begin이 undefined인 경우에는, 0번 인덱스부터 slice.
// begin이 배열의 길이보다 큰 경우에는, 빈 배열을 반환.
// end : 추출을 종료 할 0 기준 인덱스. (slice 는 end 인덱스를 제외하고 추출함.)
// 음수 인덱스는 배열의 끝에서부터의 길이를 나타냄.
// end가 생략되면 slice()는 배열의 끝까지(arr.length) 추출.
// TIP ! 복붙 기능이라고 생각하면 편하다.
cf. splice() : 배열의 기존 요소를 삭제, 교체 또는 새 요소를 추가.
즉, 원본 배열의 내용을 변경.
array.splice(start, deleteCount, item1, item2, ... )
// start : 배열의 변경을 시작할 인덱스.(제거할 요소의 인덱스)
// 배열의 길이보다 큰 값이라면 실제 시작 인덱스는 배열의 길이로 설정됨.
// 음수인 경우 배열의 끝에서부터 요소를 세어나가며,
// 값의 절대값이 배열의 길이 보다 큰 경우 0으로 설정된다.
// deleteCount : 배열에서 제거할 요소의 수.(몇 번째 요소까지)
// deleteCount를 생략하는 경우, start부터의 모든 요소를 제거한다.
// 0 이하라면 어떤 요소도 제거하지 않는다.
// item1, item2, ... : 배열에 추가할 요소.(제거한 후 대신 추가할 요소)
// 아무 요소도 지정하지 않으면 splice()는 요소를 제거하기만 한다.
(+) split() : 문자열을 지정한 구분자로 잘라 배열로 리턴.
split(separator, limit)
// separator : 끊어야 할 부분을 나타내는 문자열. 실제 문자열이나 정규표현식을 받을 수 있다.
// limit : 끊어진 문자열의 최대 개수를 나타내는 정수.
/* mdn 예제 */
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' '); //띄어쓰기 기준
console.log(words[3]);
// Expected output: "fox"
const chars = str.split(''); //한 칸씩 다 자르기
console.log(chars[8]);
// Expected output: "k"
const strCopy = str.split(); //전달인자가 아무것도 없을 때
console.log(strCopy);
// Expected output: Array ["The quick brown fox jumps over the lazy dog."]
(+) join() : 배열의 모든 요소를 연결해 하나의 문자열로 만듦.
arr.join(separator)
// separator : 배열의 각 요소를 구분할 문자열을 지정. 이 구분자는 필요한 경우 문자열로 변환된다.
// 생략하면 배열의 요소들이 쉼표로 구분됨.
// 빈 문자열이면 모든 요소들이 사이에 아무 문자도 없이 연결됨.
/* mdn 예제 */
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// Expected output: "Fire,Air,Water"
console.log(elements.join(''));
// Expected output: "FireAirWater"
console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"
'22.12.15 ~ 23.06.08 코드스테이츠' 카테고리의 다른 글
나만의 계산기 만들기 (0) | 2023.01.01 |
---|---|
[JavaScript] 객체 (0) | 2022.12.30 |
[Linux/Git] 기초(2) (0) | 2022.12.29 |
[Linux/Git] 기초(1) (0) | 2022.12.28 |
[HTML/CSS] 활용 (0) | 2022.12.24 |
댓글