TIL 20230524

M·2023년 5월 24일
0

TIL

목록 보기
8/42
post-thumbnail

스파르타코딩클럽 JavaScript 문법 종합반

오늘 강의를 2주차를 다 들었다. 자바스크립트 문법의 흐름을 대강 익히고,
2회독, 3회독까지 하려고 1회독은 대충 훑었다.
솔직히 너무 모르겠다.. 그래도 오늘 배운걸 요약해보려 한다.

자바스크립트에서 함수는 일급객체이다. 함수의 사용이 되게 유연하다.

// 변수에 함수를 할당하기
let num = function(x, y) {
  console.log(x + y);
};

num(10, 10)

콘솔창에 20이 출력되는 모습을 볼 수 있다.
변수안에 함수를 할당하면 사용도 되게 간단해서 많이 쓸 듯 하다.

함수를 인자로 다른 함수에 전달할 수도 있다.

콜백함수, 고차함수의 개념을 조금이지만 학습하였다.

// 콜백함수, 고차함수 찍먹
function rePaFunc(func) { // 아마 함수를 매개변수로 받는 rePaFunc함수가 고차함수인것 같다.
  func();
}

const helloFunc = function() {
  console.log('Hello JavasCript!');
};

rePaFunc(helloFunc); // 아마 매개변수 func에 들어가는 helloFunc함수가 콜백함수가 되는것 같다.

업로드중..

hello JavaScript가 잘 출력되는 모습을 볼 수 있다.

또 함수에서 리턴값을 함수로 반환할 수도 있고, 객체의 프로퍼티로 함수를 할당하거나
배열의 요소로 함수를 할당 할 수도 있다. 왜 유연하게 함수를 사용 할 수 있는지 실감이간다..

2주차 숙제

1주차 숙제도 그렇고.. 2주차 숙제도 나한테는 너무나도 어려웠다..
강의자료에 있는 힌트를 보고 열심히 해서 풀긴했다. 얼른 나만의 코딩 스타일을 찾고 싶다..

문제

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 
각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 
예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 
각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다

혼자 힘으로 풀어보려 했지만.. 강의 진도도 나가야해서 빠르게 힌트를 보고 생각했다.
힌트 1. 문자열 앞에 인덱스에 해당하는 문자를 붙인다
2. 사전순으로 정렬한다
3. 정렬된 배열의 가장 앞 글자를 땐다

function solution(strings, n) {
    let returnValue = [];
    for (let i = 0; i < strings.length; i++) {
        strings[i] = strings[i][n] + strings[i];
    }

    strings.sort();
    for (let i = 0; i < strings.length; i++) {
        strings[i] = strings[i].replace(strings[i][0], '');
    }

    return strings;
}

마지막에 return이 아닌 console.log(strings)를 찍어보면
업로드중..
strings 배열 안 요소마다 인덱스1기준으로 사전순서대로 정렬된 모습을 볼 수 있다.
오늘 3주차까지 들었어야 했는데 못 들었따. 내일 4주차까지 달려봐야겠다.

profile
자바스크립트부터 공부하는 사람

0개의 댓글