공부기록/JavaScript

#6일차 [JavaScript] 반복문 , 배열

taecode 2024. 11. 14. 10:25

반복문 문제 중 체크

  • 빈 문자열의 길이 : str.length === 0;

  • 문자열은 불변 ( 순서를 바꾸거나 변환 불가 )
    - 참조자료형인 String 타입은 주소만 가리키고 있기 때문에 통째로 바꿀 수는 있지만 (재할당) 세부요소만 바꾸지는 못함
    - 또한, String 타입을 재할당하는 것은 원래 주소를 바꾸는 것이 아니라 새로운 주소를 할당하고 원래의 주소도 지우지 않기 때문에 비효율적이다. 
  • 소수를 구하는 알고리즘 : 제곱근 까지만 보면 된다. ( ex. 17이라면 4.xx이기 때문에 4까지만 반복문을 돌려보면 된다.
     - 아래 코드 중 12, 13번째 줄 확인
function listPrimes(num) {
    // 결과를 저장할 문자열 변수, 가장 작은 소수가 2기 때문에 2로 초기화
    let result = '2';

    // 3부터 num 까지 반복하고, 짝수는 소수가 될 수 없기 때문에 홀수들만 돌린다.
    // **** 2는 소수이기 때문에 체크했는지 확인
    for(let i = 3; i <= num; i += 2) {

        // 현재 검사할 숫자 i를 currentSelectedNumber로 설정
        let currentSelectedNumber = i;

        // 현재 숫자의 제곱근을 계산하고 정수로 변환 (소수 여부를 확인할 때 최적화 용도)
        let sqrt = parseInt(Math.sqrt(currentSelectedNumber));

        // 소수 여부를 판단하는 변수, 기본값을 true로 설정
        let isPrime = true;

        // 2부터 현재 숫자의 제곱근까지 나누어 떨어지는지 확인
        for(let divider = 2; divider <= sqrt; divider++) {
            // 만약 현재 숫자가 나누어 떨어지면 소수가 아님
            if(currentSelectedNumber % divider === 0) {
                isPrime = false; // 소수가 아님을 표시
                break; // 더 이상 확인할 필요가 없으므로 반복문 종료
            }
        }

        // 만약 소수라면 결과 문자열에 '-'를 붙이고 현재 숫자를 추가
        if(isPrime) {
            result += '-' + currentSelectedNumber;
        }
    }

    // 모든 소수를 포함한 결과 문자열 반환
    return result;
}

 

  • return 값에 조건식이 들어가면 참거짓 판별해서 true 또는 false 로 return
  • str.slice(a, b); : index a번부터 b앞까지 자른다.
    str.slice(a) : a번부터 끝까지

함수선언문과 함수표현식

- 함수표현식은 javascript에만 있음.

// 함수선언문으로 정의한 함수
function greeting () {
	console.log('hello world')
};
greeting();


// 함수표현식으로 정의한 함수
// 함수를 변수에 할당하는 방식 
let greeting = function () {
	console.log('hello world')
};

 

 

 

argument ( 매개변수 ) 와 parameter ( 전달인자 )

 - 매개변수 : 외부에서 입력되는 값 ( 함수 정의 시 )

 - 전달인자 : 함수로 전달하는 값 ( 함수 호출 시 )

 

 

배열

 

배열에서 사용할 수 있는 메서드

 

 

배열 생성 및 확인

  • Array.isArray(): 주어진 값이 배열인지 확인해서 배열이면 true, 아니면 false를 반환
  • push(): 배열의 끝에 하나 이상의 요소를 추가하고 새로운 길이를 반환
  • unshift(): 배열의 시작 부분에 하나 이상의 요소를 추가하고 새로운 길이를 반환
  • pop(): 배열의 마지막 요소를 제거하고 그 요소를 반환합니다. 원본 배열 변경
  • shift(): 배열의 첫 번째 요소를 제거하고 그 요소를 반환합니다. 원본 배열 변경

배열 검색

  • indexOf(): 특정 요소가 배열에서 처음 나타나는 인덱스를 반환합니다. 요소가 없으면 -1을 반환
  • includes(): 특정 요소가 배열에 존재하는지 여부를 확인하여 true 또는 false를 반환합니다.

배열 변형

  • slice(): 배열의 일부분을 추출하여 새로운 배열로 반환합니다. 원본 배열은 변경되지 않는다
  • splice(): 배열의 특정 위치에서 요소를 제거하거나 추가합니다. 원본 배열 변경
  • map( a => b ) : a 를 b 로 바꿔서 새로운 배열 반환

문자열과 배열 반환

  • split(): 문자열을 특정 구분자로 나누어 배열로 반환
  • join(): 배열의 모든 요소를 문자열로 결합하여 반환

문자열과 배열 반환

  • concat(): 배열을 합쳐서 새로운 배열 반환

 

https://blog.stackademic.com/array-and-array-methods-in-javascript-4f836defc198