240408 TIL_JS 문법 익숙해지기 (배열과 매서드, 반복문)

미밍·2024년 4월 8일
0

우당탕탕 개발 일기

목록 보기
10/108

프로그래머스 코딩테스트 입문
배열 뒤집기
문자열 안에 문자열

JS 핸드북
part 02. 조건문
part 03. 배열과 반복문


[더 공부해야 할 다른 사람의 풀이]

  • 배열 뒤집기

function solution(num_list) {
var answer = [];
var j = num_list.length
for(var i = 1; i <= j; i++){
answer.push(num_list[j-i])
}
return answer;
}

  • 문자열 안에 문자열, includes(), 삼항

function solution(str1, str2) {
return str1.includes(str2) ? 1 : 2;
}

[복습]

  • 코딩 문제를 풀다보니 기초가 아니라 좀 더 쉬운 기술에 자꾸만 접근하려고 하는 것 같다. 좀 더 기초를 쌓는 일주일이 되었으면 한다. 조건문, 반복문 더 많이 보기!

리스트 = 배열 = arr = []
배열은 순서가 있는 자료를 저장하는 용도로 만들어진 특수한 자료구조
for..of 반복문은 배열의 요소를 대상으로 반복 작업할 때

딕셔너리 = 객체 = 키 : 밸류 = {}
임의의 키를 사용해야 한다면 배열보단 일반 객체 {}가 적합한 자료구조
for..in 반복문은 배열이 아니라 객체와 함께 사용할 때 최적화

== 타입 안 본다
=== 타입 본다

= 할당 연산자는 순위가 낮은 편, 거의 마지막 값

  • ? 연산자

let age = prompt('나이를 입력해주세요.', 18);
let message = (age < 3) ? '아기야 안녕?' :
(age < 18) ? '안녕!' :
(age < 100) ? '환영합니다!' :
'나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
alert( message );

예시문. 나였으면 중간 else if 에 && 값을 덕지덕지 붙였을 것 같다. 순서대로 값 처리할 때 더 폭 넓게 생각해보기.

[배열과 매서드]

  • 매서드를 적용하는 과정에서 멈칫거리는 것 같다. 예시문을 더 많이 보고 빠르게 적용할 수 있게 노력하기

  • 요소를 더하거나 지우기
    push(...items) – 맨 끝에 요소 추가하기
    pop() – 맨 끝 요소 추출하기
    shift() – 첫 요소 추출하기
    unshift(...items) – 맨 앞에 요소 추가하기
    splice(pos, deleteCount, ...items) – pos부터 deleteCount개의 요소를 지우고, items 추가하기
    slice(start, end) – start부터 end 바로 앞까지의 요소를 복사해 새로운 배열을 만듦
    concat(...items) – 배열의 모든 요소를 복사하고 items를 추가해 새로운 배열을 만든 후 이를 반환함. items가 배열이면 이 배열의 인수를 기존 배열에 더해줌

  • 원하는 요소 찾기
    indexOf/lastIndexOf(item, pos) – pos부터 원하는 item을 찾음. 찾게 되면 해당 요소의 인덱스를, 아니면 -1을 반환함
    includes(value) – 배열에 value가 있으면 true를, 그렇지 않으면 false를 반환함
    find/filter(func) – func의 반환 값을 true로 만드는 첫 번째/전체 요소를 반환함
    findIndex는 find와 유사함. 다만 요소 대신 인덱스를 반환함

  • 배열 전체 순회하기
    forEach(func) – 모든 요소에 func을 호출함. 결과는 반환되지 않음

  • 배열 변형하기
    map(func) – 모든 요소에 func을 호출하고, 반환된 결과를 가지고 새로운 배열을 만듦
    sort(func) – 배열을 정렬하고 정렬된 배열을 반환함
    reverse() – 배열을 뒤집어 반환함
    split/join – 문자열을 배열로, 배열을 문자열로 변환함
    reduce(func, initial) – 요소를 차례로 돌면서 func을 호출함. 반환값은 다음 함수 호출에 전달함. 최종적으로 하나의 값이 도출됨

  • 기타
    Array.isArray(arr) – arr이 배열인지 여부를 판단함


[반복문]

  • 예시를 더 많이 살펴보기!

for (begin; condition; step) {
// ... 반복문 본문 ...
}

  1. begin을 실행함
  2. condition이 truthy이면
  3. body를 실행한 후
  4. step을 실행함
  5. → (condition이 truthy이면 → body를 실행한 후, step을 실행함)
    → ...
    대개는 반복문의 조건이 falsy가 되면 반복문이 종료됩니다.
profile
프론트앤드; Frontend

0개의 댓글