일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 개발자북클럽
- 자바스크립트
- 톺아보기
- 알고리즘
- javascript
- nomadcoders
- 비전공자를 위한
- 노마드 코더
- 공부를 가장한 일기일지도
- 백준
- 최원영 저자
- Do it! 시리즈
- 노마드코더
- 이해할 수 있는
- 프로그래머스
- 제로베이스
- K-Digital Credit
- 노개북
- js
- IT 지식
- SQLD
- boj
- 오블완
- 엘리스코딩
- 티스토리챌린지
- CodeStates
- 모던 자바스크립트 deep dive
- SQL 개발자
- 자격증
- 구름edu
- Today
- Total
개발자를 희망하는 초보의 자기개발 이야기
JavaScript 배열(Array) 본문
JavaScript 배열(Array)
: 배열은 순서가 있는 값을 의미합니다. 대괄호를 이용해 배열을 만들고, 각각의 원소(element)는 쉼표로 구분해 줍니다. 배열 원소는 타입이 고정되어 있지 않습니다. 그리고 인덱스는 연속적이지 않을 수 있습니다.
let myNumber = [1, 2, , 4, "문자열"];
: 순서는 인덱스(index)라고 부르며, 0부터 번호를 매깁니다. 인덱스를 이용해 값에 접근할 수 있습니다.
let myNumber = [1, 2, 3, 4, 5];
myNumber[3]; // myNumber 배열의 3번째 인덱스값은? 4
: 값을 변경할 때는 마찬가지 인덱스를 이용해서 할당해 줍니다.
let myNumber = [1, 2, 3, 4, 5];
myNumber[3] = 40;
myNumber; // [1, 2, 3, 40, 5]
: length 속성을 이용해 배열의 길이를 계산할 수 있습니다. 마지막 요소에 접근할 때는 배열의 length -1과 같습니다. 인덱스는 0부터 시작하기 때문입니다.
let myNumber = [1, 2, 3, 4, 5];
myNumber.length // 5
myNumber[myNumber.length - 1] // 마지막 요소 5 반환.
: 배열 끝에 항목을 추가할 때는 push()를. 삭제할 때는 pop()을 이용합니다.
let fruits = ['사과', '바나나']
let newFruits = fruits.push('오렌지')
// ["사과", "바나나", "오렌지"]
let newFruits = fruits.pop
// ["사과", "바나나"]
: 배열 앞에 항목을 추가할 때는 unshift()를, 삭제할 때는 shift()를 이용합니다.
let newFruits = fruits.unshift('딸기') // 앞에 추가
// ["딸기", "바나나"]
let newFruits = fruits.shift() // 앞에 삭제
// ["바나나"]
: 특정한 인덱스의 엘리먼트를 삭제하려면 splice()를 이용해서 시작 인덱스와 지울 갯수를 넣어줍니다.
let vegetables = ['양배추', '순무', '무', '당근']
vegetables.splice(1, 2) // ['순무', '무']. 삭제되는 값을 반환하고 종료됨
console.log(vegetables) // ['양배추', '당근']
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
let vegetables = ['양배추', '순무', '무', '당근']
vegetables.splice(1, 2, '대파') // ['순무', '무']. 삭제되는 값을 반환하고 1번 인덱스에 '대파'가 추가됨.
vagetables // ['양배추', '대파', '당근']
: 동일한 방식으로 엘리먼트 추가도 가능합니다. splice()를 이용해서 시작 인덱스와 교체할 갯수, 교체할 엘리먼트를 넣어줍니다.
let vegetables = ['양배추', '순무', '무', '당근']
vegetables.splice(1, 2, '대파', '쪽파') // ['순무', '무']. 삭제되는 값을 반환하고 종료됨
console.log(vegetables) // ['양배추', '대파', '쪽파', '당근']
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
let vegetables = ['양배추', '순무', '무', '당근']
vegetables.splice(1, 2, '대파') // ['순무', '무']. 삭제되는 값을 반환하고 1번 인덱스에 '대파'가 추가됨.
vagetables // ['양배추', '대파', '당근']
: 배열의 복사는 slice()를 이용합니다. 시작인덱스와 끝 인덱스를 넣어줍니다. 빈칸은 전체 복사됩니다.
끝 인덱스에 입력된 값은 제외 하고 그 앞의 인덱스까지 복사됩니다.
let vegetables = ['양배추', '순무', '무', '당근']
let newVegetables = vegetables.slice() // ['양배추', '순무', '무', '당근']
let newVegetables2 = vegetables.slice(0, 2) // ['양배추', '순무'], 끝 인덱스의 앞까지 복사됨.
: 배열의 요소를 정렬할 때는 sort() 메소드를 사용합니다. 숫자의 경우 유니코드 순서대로 정렬되므로 sort안에 매개변수를 넣지 않으면 오름차순, 내림차순 정렬을 해야하는 경우 b - a로 실행하면 됩니다.
let myNumber = [1, 15, 4, 100, 75];
words.sort();// [1, 4, 15, 75, 100]
words.sort(function(a, b){
return b - a;
});
// [100, 75, 15, 4, 1]
: typeof(array)의 경우 object를 반환하기 때문에 배열인지 판단을 위해서는 Array.isArray() 메소드를 사용합니다. 결과는 true 또는 false를 반환합니다.
Array.isArray([1, 2, 3]); // true
Array.isArray("good"); // false
Array.isArray({name : "Park"}); // false
Array.isArray([undefined]); // false
: 배열 요소의 순서를 전부 반대로 바꿀 때는 reverse() 메소드를 사용합니다.
let vegetables = ['양배추', '순무', '무', '당근']
vegetables.reverse() // ['당근', '무', '순무', '양배추']
: 배열의 모든 요소를 하나의 문자열로 반환할 때 join()메소드를 이용합니다. 인수로 전달받은 문자열은 배열 요소 사이를 구분짓는 구분자로 사용되며 인수를 전달받지 않으면 기본값으로 쉼표(,)를 구분자로 사용한다.
var arr = [1, true, "JavaScript"];
arr.join(); // 1,true,JavaScript
arr.join(' + '); // 1 + true + JavaScript
arr.join(' '); // 1 true JavaScript
arr.join(''); // 1trueJavaScript
: 여러 배열을 합칠 수도 있습니다. concat()메소드를 이용합니다. 이 때 배열 안에 배열이 있더라도 모두 한 배열로 합쳐집니다. 원본은 변경되지 않으므로 합친 배열을 다른 변수에 할당해야 활용할 수 있습니다.
let arr1 = [1, 2]
let arr2 = [3, 4]
let arr3 = [5, 6]
arr1.concat(arr2) // [1,2,3,4]
arr1.concat(arr2, arr3) // [1,2,3,4,5,6]
arr1.concat([[3,4],5,6]) // [1,2,3,4,5,6]
정리
- 배열은 순서가 있는 값
- 인덱스와 엘리먼트로 구성됨
- 마지막 요소는 length - 1
- 배열 끝 추가/삭제 push(), pop()
- 배열 앞 추가/삭제 unshift(), shift()
- 특정 위치 엘리먼트 삭제 또는 추가 splice(시작점, 지울 개수, 추가할 엘리먼트)
- 배열의 복사 slice()
- 배열의 정렬 sort()
- 배열의 판별 Array.isArry()
- 배열 요소 반전 reverse()
- 문자열로 반환 join()
- 배열간의 결합 concat()
참고
'프론트엔드(Front-end) > JavaScript' 카테고리의 다른 글
Command Line (0) | 2021.01.03 |
---|---|
JavaScript 객체(object) (0) | 2021.01.03 |
JavaScript 반복문(Loop) (0) | 2020.12.26 |
JavaScript 문자열(String) (0) | 2020.12.20 |
JavaScript 조건문(Condition) (0) | 2020.12.20 |