[JS] CDT 로 배우는 Javascript 기능과 기술들 [1.0]

김현수·2023년 10월 9일
0

cdt

목록 보기
1/51


📰 Coding Test 에서 익히는 javscript 기능과 기술등


javascript 의 input 과 output 사용

  • process.stdout.write(anything_value);
    • process 출력 기능
  • precess.exit();
    • process 종료 기능
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    str = input[0];
});

string 의 기능 "repeat"

const str = "apple"
console.log(str.repeat(4))
[결과]
appleappleappleapple

Array 의 기능 "from"

  • 문자열을 배열로
console.log(Array.from("Hello"));
[결과]
["H","e","l","l","o"]

Array 의 기능 "join"

  • 배열을 문자열로 (구분자 포함)
arr = ["abc", "def", "ghi"]
const str1 = arr.join();
const str2 = arr.join('/');
const str3 = arr.join('');
console.log(str1);
console.log(str2);
console.log(str3);
[결과]
abc,def,ghi
abc/def/ghi
abcdefghi

디스트럭쳐링

  • 문자열을 배열로
arr = "school"
console.log([...arr]);
[결과]
["s","c","h","o","o","l"]

string 의 기능 "split"

  • 문자열을 구분자를 통해 배열로
str = "s c h o o l"
console.log(str.split(" "));
[결과]
["s","c","h","o","o","l"]

Array 의 기능 "slice"

  • 원하는 인덱스 구간으로 배열 자르기
const myArray = [1 , 2 , 3 , 4 , 5];
console.log(myArray.slice(0, 3));
console.log(myArray.slice(3));
[결과]
[1 , 2 , 3]
[4, 5]

parseInt 정수로

parseInt(3.5)
[결과]
3

✔️ Array 의 기능 "reduce"

  • 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환

    • callback
      • 배열의 각 요소에 대해 실행할 함수
    • accumulator
      • 리듀서 함수의 반환 값이 누적되는 변수
    • currentValue
      • 현재 처리 중인 배열의 요소
    • index (선택사항)
      • 현재 처리 중인 배열의 인덱스
    • array (선택사항)
      • reduce가 호출된 배열
    • initialValue (선택사항)
      • accumulator의 초기 값
array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
  • 배열의 합계
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15
  • 배열의 평균
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, cur, idx, arr) => {
  acc += cur;
  return idx === arr.length - 1 ? acc/arr.length : acc;
}, 0);
console.log(average); // 3
  • 객체의 특정 프로퍼티 합계
const products = [
  { name: 'A', price: 20 },
  { name: 'B', price: 40 },
  { name: 'C', price: 60 }
];
const totalPrice = products.reduce((acc, cur) => acc + cur.price, 0);
console.log(totalPrice); // 120
  • 배열에서 가장 큰 숫자 찾기
const numbers = [10, 5, 8, 1, 7];
const maxNumber = numbers.reduce((acc, cur) => (acc > cur ? acc : cur), numbers[0]);
console.log(maxNumber); // 10
  • 각 배열의 요소 두배 하기
// 배열로 디스트럭칭 응용
const numbers = [10, 5, 8, 1, 7];
answer = numbers.reduce((a, b) => [...a, b * 2], []);

  • 📢 주의 사항

▶ 초기 값을 제공하지 않으면 reduce 는 배열의 첫 번째 요소를 
   accumulator 로 사용하고, 두 번째 요소부터 콜백 함수를 실행

▶ 배열을 순회하며 여러 작업(합계, 평균, 최대/최소값 등)을 수행할 때 유용

🖋️ 최대공약수 구하는 공식

const getGCD1 = (num1, num2) => {
    return (num1 % num2)? getGCD(num2, num1 % num2) : num2;
}

const getGCD2 = (num1, num2) => {
    while(num2 > 0){
        let r = num1 % num2;
        num1 = num2;
        num2 = r;
    } 

    return num1;
}
profile
일단 한다

0개의 댓글