▶배열 [ ]: 여러 개의 변수를 한 번에 선언해 다룰 수 있는 자료형.
▶요소 : 배열 내부에 있는 값.
▶비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않는 처리.
▶파괴적 처리 : 처리 후에 원본 내용이 변경되는 처리.
▶확인 문제
1. 다음 배열들의 2번째 인덱스에 있는 값을 찾아라.
- ["1","2","3","4"] → "3"
- ["사과","배","바나나","귤","감"] → "바나나"
- [52, 273, 32, 103, 57] → 32
2. 다음 코드의 실행결과는?
<script>
const array = [1, 2, 3, 4]
console.log(array.length)
console.log(array.push(5))
</script>
4
5
3. 다음 표시된 함수들이 파괴적 처리를 하는지 비파괴적 처리를 하는지 구분하라.
> const strA = "사과,배,바나나,귤"
undefined
> strA.split(",")
(4) ["사과", "배", "바나나", "귤"]
> strA
"사과,배,바나나,귤"
비파괴적 처리
> const arrayB = ["사과, 배, 바나나, 귤"]
undefined
> arrayB.push("감")
5
> arrayB
(5) ["사과", "배", "바나나", 귤", "감"]
파괴적 처리
> const arrayC = [1, 2, 3, 4, 5]
undefined
> arrayC.map((x) => x * x)
(5) [1, 4, 9, 16, 25]
> arrayC
(5) [1, 2, 3, 4, 5]
비파괴적 처리
> const strD = " 여백이 포함된 메시지 "
undefined
> strD.trim()
"여백이 포함된 메시지"
> strD
" 여백이 포함된 메시지 "
비파괴적 처리
▶for in 반복문 : 배열의 인덱스를 기반으로 반복할 때 사용.
▶for of 반복문 : 배열의 값을 기반으로 반복할 때 사용.
▶for 반복문 : 횟수를 기반으로 반복할 때 사용.
▶while 반복문 : 조건을 기반으로 반복할 때 사용.
▶break 키워드 : switch 조건문이나 반복문을 벗어날 때 사용.
▶continue 키워드 : 반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행.
▶확인 문제
1. 다음 프로그램의 실행 결과를 예측하라.
<script>
const array = ['사과', '배', '귤', '바나나']
console.log('# for in 반복문')
for (const i in array) {
console.log(i)
}
console.log('# for of 반복문')
for (const i of array) {
console.log(i)
}
</script>
# for in 반복문
0
1
2
3
# for of 반복문
사과
배
귤
바나나
2. 다음 프로그램의 실행 결과를 예측하고 오류를 수정하라.
<script>
const array = []
for (const i = 0; i <3; i++) {
array.push((i + 1) * 3)
}
console.log(array)
</script>
VM137:3 Uncaught TypeError: Assignment to constant variable.
at <anonymous>:3:30
<script>
const array = []
for (let i = 0; i <3; i++) {
array.push((i + 1) * 3)
}
console.log(array)
</script>
(3) [3, 6, 9]
3. 1부터 100까지의 숫자를 곱한 값을 계산하는 프로그램을 만들어라.
<script>
let output = 1
for (let i = 1; i <= 100; i++) {
output *= i
}
console.log(`1~100의 숫자를 모두 곱하면, ${output}입니다.`)
</script>
1~100의 숫자를 모두 곱하면, 9.33262154439441e+157입니다.
4. 피라미드 만들기 (다이다)
<script>
let output = ''
const size = 5
for (let i = 1; i <= size; i++) {
for (let j = size; j > i; j--) {
output += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
output += '*'
}
output += '\n'
}
for (let i = size -1; i > 0; i--) {
for (let j = size; j > i; j--) {
output += ' '
}
for (let k = 0; k < 2 * i - 1; k++) {
output += '*'
}
output += '\n'
}
console.log(output)
</script>
----------------------------------------
오늘은 배열과 반복문을 배웠다.
정말.....정말정말 짱 어려웠다. 계속 로그를 찍어가면서 내가 잘 하고 있는게 맞나? 내가 제대로 이해한건가?
애초에 내가 뭘 모르는지 모르겠는데, 이렇게 하는게 맞나? 라는 의구심이 계속해서 들었다.
특히나, 마지막 예제 피라미드를 할 때에는 수학적 연산도 어느정도 암산을 해야한다고 생각이 들어 열심히 머리를 썼던 것 같다. 다음엔 가운데가 뚫린 다이아를 구현해 보고 싶은데 그럼 또 머리를 엄청 써야겠지?
'개발 공부' 카테고리의 다른 글
혼공스 Chapter.6 (0) | 2023.03.11 |
---|---|
혼공스 Chapter.5 (0) | 2023.03.09 |
혼공스 Chapter.3 (0) | 2023.03.07 |
혼공스 Chapter.2 (0) | 2023.03.06 |
혼공스 Chapter.1 (0) | 2023.03.06 |