가수면

JavaScript 반복문 본문

웹 개발/웹 개발

JavaScript 반복문

니비앙 2022. 11. 10. 17:54

 

 

  • .splice()

배열 중간에 요소 추가하기: splice(인덱스, 0, 요소)

배열 요소 제거하기 .splice(인덱스, 1)

 

  • .indexOf()

배열 내부에서 값의 위치 찾기

a = [52, "추가", 273, "안녕", "하세요", 100]
a.indexOf('안녕')
3

# 없는 요소를 찾을 경우
a.indexOf('777')
-1

둘의 응용

const index = a.indexOf('하세요')
a.splice(index, 1)

[52, "추가", 273, "안녕", 100]

 

 

  • slice( ) vs splice( )

slice() - 원본을 복사한 배열객체를 반환

splice() - 원본 배열객체를 직접 수정

 

 

  • for of
const 배열 = ['바나나', '사과', '귤']
for (const 요소 of 배열) {
	console.log(요소)
}
# 바나나
# 사과
# 귤

 

  • for in
const 배열 = ['바나나', '사과', '귤']
for (const 인덱스 in 배열) {
	console.log(인덱스, 배열[인덱스])
}
 # 0 바나나
 # 1 사과
 # 2 귤

 

  • while

1. 불 표현식을 확인 (for와 다른점)

2. true라면 -> 본문 실행하고 1번으로 돌아간다.

3, false라면 -> 종료

let i = 0
while (confirm('계속 진행하시겠습니까?')) {
    alert(`&{i}번째 반복입니다.`)
    i++
}

 

  • .push

최종적으로 현재 배열의 요소 개수

const a = [1, 2, 3, 4]
consol.log(a.push(5))
5

# [1, 2, 3, 4, 5] X

 

 

기본 자료형과 복합 자료형

- 스택(stack): 잘 쌓는 공간

  • 기본 자료형은 직접
  • 복합 자료형은 그 주소를

- 힙(heap): 분리하여 쌓은 공간

  • 복합 자료형의 본체가 저장

 

힙의 주소값인 1#을 '[1, 2, 3, 4]'라는 배열로 교체하는 것은 오류가 나지만, #1의 값인 [1, 2]에 .push로 3, 4를 추가해 [1, 2, 3, 4]로 만드는 것은 허용됨. #1을 #2같은 주소로 교체하는 것이 아니기 때문.

 

 

 


 

피라미드 만들기

※ (8 - i) 이런 식으로 가는 이유: 

i: 0 , 1, 2, 3, 4 ....

(8 - i): 9, 8, 7, 6 ....

  • 2개씩 늘어나기
    let a = ''
    for (let i = 0; i < 9; i++) {
        for (let b = 0; b < (2 * i + 1) ; b++) {
            a += '*'
        }
        a += '\n'
        
    }
    console.log(a)

*
***
*****
*******
*********
***********
*************
***************
*****************
  • 띄어쓰기 역순으로
    let a = ''
    for (let i = 0; i < 9; i++) {
        for (let c = 0; c < 8 - i; c++) 
        a += ' '
            for (let b = 0; b < (2 * i + 1) ; b++) {
                a += '*'                
            }
        a += '\n'
    }
    console.log(a)
    
        *
       ***
      *****
     *******
    *********
   ***********
  *************
 ***************
*****************
  • 다이아몬드 모양
    let a = ''
    for (let i = 0; i < 5; i++) {
        for (let c = 0; c < 4 - i; c++) 
        a += ' '
            for (let b = 0; b < (2 * i + 1) ; b++) {
                a += '*'                
            }
        a += '\n'
    }

    for (let i = 0; i < 5; i++) {
        for (let c = 0; c < i + 1; c++) 
        a += ' '
            for (let b = 0; b < 8 - (2 * i + 1) ; b++) {
                a += '*'                
            }
        a += '\n'
    }
    console.log(a)

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

 

피라미드 혼자 해보려고 했는데 불가능했다;;;

'웹 개발 > 웹 개발' 카테고리의 다른 글

JavaScript 함수 (2)  (0) 2022.11.12
JavaScript 함수 (1)  (0) 2022.11.11
JavaScript 조건문  (0) 2022.11.08
JavaScript 기본 용어 및 개념 / 자료와 변수  (0) 2022.11.07
html이동, 페이지 이동  (0) 2022.11.05
Comments