본문 바로가기

개발 공부

혼공스 Chapter.4

배열 [ ]: 여러 개의 변수를 한 번에 선언해 다룰 수 있는 자료형.

요소 : 배열 내부에 있는 값.

비파괴적  처리 : 처리 후에 원본 내용이 변경되지 않는 처리.

파괴적 처리 : 처리 후에 원본 내용이 변경되는 처리.

 

확인 문제

1. 다음 배열들의 2번째 인덱스에 있는 값을 찾아라.

  1. ["1","2","3","4"] → "3"
  2. ["사과","배","바나나","귤","감"] → "바나나"
  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