배열은 다양한 종류의 변수값을 묶어서 저장할 수 있는 자료구조 이다.
자바스크립트에서 한 배열 안에는 숫자, 불리언, 문자열, 함수까지도 들어갈 수 있다.
아래를 통해서 Computational하게 연습해보자.
// 코딩이 진행될때마다 배열이 어떻게 바뀌는지 서술하시오.
// 문제는 총 5개로 코드 옆에 (1)과 같이 괄호안에 번호로 적혀있음.
const barks = [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]
]
barks[2][1] = 10 // (1)
barks[1][0] = barks[2][1] // (2)
barks[2] = () => {
barks[0][1] = barks[0][1] + barks[0][0]
} // (3)
barks[2]() // (4)
barks[1] = barks[2]() // (5)
barks는 배열안에 배열이 올 수 있음을 보여준다.
이러한 형태를 2차원 배열이라고 하는데, 저 배열이 배치된 모양을 잘 보면
평면의 형태라는 것을 알 수 있다.
우리는 평면의 좌표를 구하듯이 배열안의 요소를 조작할 수 있다.
※ 인덱스는 문자열과 같이 0부터 시작한다.
barks[2][1]과 같이 호출하면
첫번째로 배열 내의 2번째 인덱스에 해당하는 [3, 4, 5] 배열이 지정된다.
이후 그 안의 첫번째 인덱스를 호출한다.
따라서 barks[2][1]은
첫번째 배열의 인덱스 2에 있는 배열의 인덱스 1이므로
barks[2][1] = 4이다.
이런식으로 위의 코드의 문제를 풀어보자.
정답)
const barks = [
[1, 2, 3],
[2, 3, 4],
[3, 4, 5]
]
barks[2][1] = 10 // (1) [[1, 2, 3], [2, 3, 4], [3, 10, 5]]
barks[1][0] = barks[2][1] // (2) [[1, 2, 3], [10, 3, 4], [3, 10, 5]]
barks[2] = () => {
barks[0][1] = barks[0][1] + barks[0][0]
} // (3) [[1, 2, 3], [10, 3, 4], function]
barks[2]() // (4) [[1, 3, 3], [10, 3, 4], function]
barks[1] = barks[2]() // (5) [[1, 4, 3], undefined, function]
※ 함수에 return이 없으면 반환값은 없다. 따라서 undefined가 반환된다.
'Javascript' 카테고리의 다른 글
Stopwatch 만들기 (html, Javascript) (0) | 2022.08.10 |
---|---|
비원시값 Circular (?) (0) | 2022.08.10 |
Chat input + delay typing (0) | 2022.08.09 |
house of primes (소수 입력) (0) | 2022.08.06 |
Closure UI (덧셈 Closure 활용) (0) | 2022.08.05 |