TIL 20220813 - 83번 (filter(),아스키코드)

hoin_lee·2022년 8월 13일
0

TIL

목록 보기
48/236

오늘은 똑같이 가게를 도와드리고 남는 시간에 알고리즘 문제와 포트폴리오 내용을 추가했다.
알고리즘 문제는 2문제 정도 풀었는데 결국 둘 다 틀렸고 풀이를 보며 접근했다.
중간 과정이나 거의 끝 과정까진 구했는데 문법적인 부분이 부족해서인지 마지막을 생각하지 못하는 게 많이 아쉽다.
그래서 월요일부터 미뤄뒀던 Javascript 강의를 차근차근 들어볼 생각이다.
객체와 배열, 화살표 함수, 비동기 등 모르는 단어가 많아서 풀이를 볼 때도 찾아보는 시간이 조금 있다.
어느 언어나 기술이든 시작할 때 문법적인 부분은 코딩 시간을 단축할 수 있는 가장 효율적인 방법이라고 생각한다.
더이상 미루지 말고 시간이 생기는대로 빨리 채우자.

오늘 문제를 풀며 filter()에 대해서 배웠는데 아직 애매하다.

filter()

filter함수는 배열의 각 요소를 순회하며 callback함수를 실행하며 조건에 맞는 요소만을 갖는 배열을 반환한다.

파라미터

  • 각 요소의 조건을 판단할 함수로 true를 반환하면 요소를 유지하고 false를 반환하면 제외
  • 3가지 인수를 가진다
    • element : 배열의 현재 요소
    • index(Optional) : 배열의 현재 요소의 인덱스
    • array(Optional) : 호출한 배열
  • thisArg(Optional)
    • callback함수를 실행할 때 this로 사용되는 값

예제
배열 속 숫자 중 홀수만 갖는 배열 만들기

const numbers = [1, 2, 3, 4, 5]; // 기존 배열

// filter1 - callback함수를 직접 작성
// 현재 요소를 2로 나눈 나머지가 1일 경우 홀수
const filter1 = numbers.filter(currentNumber => currentNumber % 2 === 1);

console.log('filter1 =', filter1);
//filter1 = [1, 3, 5]

또는

// filter2 - callback함수 선언 후 이용
function isOdd(currentNumber) {
  return currentNumber % 2 === 1;
}

const filter2 = numbers.filter(isOdd);

console.log('filter2 =', filter2);
//filter1 = [1, 3, 5]
  1. 오브젝트 배열 속 원하는 요소만 갖는 배열 만들기
const friends = [
  {
    name: '영희',
    age: 32,
    job: '요리사',
    married: false,
  },
  {
    name: '민수',
    age: 32,
    job: '변호사',
    married: false,
  },
  {
    name: '철수',
    age: 32,
    job: '백수',
    married: true,
  }
];

// 자유인들만 뽑아봅시다.
const happyPeople = friends.filter((friend) => {
  
  return friend.married === false;
})

console.log('현재 행복한 친구들.. ', happyPeople);

Result

[{
name: '영희',
age: 32,
job: '요리사',
married: false,
},
{
name: '민수',
age: 32,
job: '변호사',
married: false,
}];

아스키코드 변환

charCodeAt은 문자열 중 하나를 선택하여 아스키코드 번호로 변환해주는 함수
fromCharCode 는 아스키코드 번호를 받아 문자열을 구성해주는 함수

예시

"문자열".charCodeAt([문자열 자릿수]);
let val = "abCde"
console.log(val.charCodeAt(2))
// result : 67

 String.fromCharCode([아스키코드값]);
let val = 111
console.log(String.fromCharCode(val))
// result : o

삼항 연산자 (Java에서 배웠는데 잊고 있었다.)

조건 ? true일 때 : false일때


오늘 한 일

알고리즘 문제 풀기
포트폴리오 내용 추가하기

profile
https://mo-i-programmers.tistory.com/

0개의 댓글