주의!
Python의 numpy.array와는 연산,기능 모두 다르기때문에 유의할것.
굳이 비슷한걸 찾자면 Python에선 list와 유사하다.
배열이란
어떤 값들을 순서가 있게 담은 것
여기서 값은 문자열(String), 숫자(Number), 배열(Array), 객체(Object)등등
이 외에도 undefined,null등등 모든것들이 들어올 수 있다.
순서가 있다구요..?
배열은 순서가 보장되는 값입니다.
배열에 담긴 하나하나의 값은 요소(element)라고 부르고, 배열의 순서를 인덱스(index)라고 부르죠.
우리가 생각하는 순서와 동일합니다. 다만 1부터가 아닌 0부터 시작한다는점에는 유의해야 합니다.
let arr = [1,2,3,4,5]
// 여기서 3번째 값인 3은 2번째 인덱스(index)입니다.
배열 만들기
배열역시 만드는 방법은 한가지가 아닙니다.
가장 보편적인 방법은 대괄호를 통하여 만들어주는것입니다.
let a = [] // 빈배열
let b = [1,2,3] // 길이가 3인 배열
let c = '안녕하세요'
let d = [a,b,c]
console.log(d) // [[],[1,2,3],'안녕하세요'] --> 길이가 3인 다차원배열
배열의 요소에 접근하기
배열의 요소에 접근하기 위해선 인덱스값을 이용하게 됩니다.
let arr = [1,2,3,4,5]
// arr라는 배열에 네번째 요소 (3번째 인덱스)에 접근하기 위해서는
// arr뒤에 대괄호를 열고닫음으로서 조회 및 변경이 가능합니다.
console.log(arr[3]) // 4
// 3번째 인덱스의 값 자체를 변경하고 싶을땐 변수에 값을 할당하는 것과 같이 하시면 됩니다.
arr[3] = 7
console.log(arr) // [1,2,3,7,5]
console.log(arr[9]) // undefined
// 실제 길이보다 더 긴 범위의 인덱스를 조회하려고 할때에는
// 없는 값이기 때문에 undefined가 출력됩니다.
// 하지만 실제로 길이를 초과한것인지, 배열안의 값이 undefined또는 empty인지 확인이 불가능하니
// 이 방법으로 길이를 유추하진 마세요
다차원 배열일 경우에는 어떻게 해야하나요?
let a = [[1,2,3],[4,5,6],[7,8,9]]
// 조회하고자 하는 배열이 다음과 같을때 0번째 인덱스의 값은 [1,2,3] 이라는 배열입니다.
console.log(a[0]) // [1,2,3]
// 이 값 역시 배열이기때문에 인덱스로 요소를 조회할 수 있습니다.
console.log(a[0][0]) // 1
// a[0] 이 있는 자리에 [1,2,3]이 그대로 들어간다고 생각하고
// 인덱스나 메서드 등을 개의치않고 사용하시면 생각하기 편합니다.
배열의 메서드
매우 많습니다. 그렇기에 몇가지만 추려 설명합니다. 자세한 내용은 MDN페이지를 참고하면 좋습니다.
배열 안의 시작 인덱스부터 끝 인덱스까지의 요소값을 지정된 정적 값으로 채웁니다.
배열에서 마지막 요소를 뽑아내고, 그 요소를 반환합니다.
배열의 끝에 하나 이상의 요소를 추가하고, 변경된 배열의 길이를 반환합니다.
배열에서 첫 번째 요소를 삭제하고 그 요소를 반환합니다.
배열의 요소를 정렬하고 그 배열을 반환합니다.
배열의 앞에 하나 이상의 요소를 추가하고 새로운 길이를 반환합니다.
지정한 콜백의 반환 결과가 true인 요소만 모은 새로운 배열을 반환합니다.
배열에서 주어진 값과 일치하는 제일 앞의 인덱스를 반환합니다. 없으면 -1을 반환합니다.
배열의 모든 요소를 문자열로 합칩니다.
배열의 각 인덱스에 대한 키/값 쌍을 포함하는 새로운 배열 반복자 객체를 반환합니다.
배열의 각각의 요소에 대해 콜백을 호출합니다.
주어진 콜백 함수를 가산기와 요소 각각에 대해 왼쪽에서 오른쪽으로 호출하여 하나의 값으로 줄인(reduce) 결과를 반환합니다.
'JavaScript | 자바스크립트 > 기타' 카테고리의 다른 글
반복문 - while (0) | 2020.07.13 |
---|---|
객체 - Object (0) | 2020.07.13 |
함수의 반환값 - return (0) | 2020.07.10 |
함수 - function (0) | 2020.07.10 |
조건문(조건부실행, 흐름제어) - if / else if / else (0) | 2020.07.10 |
댓글