Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- lastIndexOf()
- 객체를 배열로
- search()
- sql like연산자
- 리엑트블로거
- 배열을 객체로
- @Moditying @Query
- 우분투 시간 변경
- 5.3.8 Modifying Queries
- Robo3T 폰트변경
- 객체의 밸류값만 찾기
- Robo3T 폰트 키우기
- 가상컴퓨터마법사
- 깃 토큰 만료
- 레디스 확인
- ubuntu타임존
- Robo3T 글씨체 변경
- js 문자열을 문자배열로
- ...점점점문법
- indexOf()
- 스프링 데이타 JPA
- 코딩 어?
- 문자열 인터폴레이션
- ${변수}
- sql 문자열 패턴 검색
- 프론트엔드 스쿨
- findIndex()
- Robo3T 글씨키우기
- 시퀄 문법
- 객체의키값만 찾기
Archives
- Today
- Total
코딩기록
[88] countCompletedTodos / 객체배열에서 특정 키의 값만 모두 더하기, true만 합산, 고차배열함수 map, reduce, filter 그리고 for문 총합 본문
프론트/JS)코딩테스트
[88] countCompletedTodos / 객체배열에서 특정 키의 값만 모두 더하기, true만 합산, 고차배열함수 map, reduce, filter 그리고 for문 총합
뽀짝코딩 2024. 8. 8. 21:02728x90
문제
todos 배열에서 완료(completed: true)한 할일의 갯수를 구해 반환한다.
- for 문, for…in 문, for…of 문, Array#forEach는 사용하지 않는다.
- todos 배열을 변경하지 않는다.
const countCompletedTodos = todos => { /* Do something */ };
const todos = [
{ id: 3, content: 'HTML', completed: false },
{ id: 2, content: 'CSS', completed: true },
{ id: 1, content: 'Javascript', completed: false }
];
console.log(countCompletedTodos(todos)); // 1
풀이
1번풀이 - map, reduce
1). map으로 배열을 돌아 coompleted만 뽑아서 배열로 만들고
2). 누적 합산하는 reduce로 총 합산을 반환 한다.
true는 1 false는 0이라 true만 합산됨.
2번풀이- filter
=>수정
최종 코드
todo의 completed만 가지고 필터해서 길이를 반환한다.
// [88]
// 1-1. map, reduce
const countCompletedTodos = todos88 => {
const completedNum = todos88.map(value => value.completed);
// console.log(completedNum); // [ false, true, false ]
return completedNum.reduce((sum, n) => sum + n); // 1
}
// 1-2.
const countCompletedTodos = todos88 =>
todos88.map(value => value.completed).reduce((sum, n) => sum + n); // 1
-----------------------------------------------
// 2. filter
const countCompletedTodos = todos88 => todos88.filter(todo => todo.completed).length;
const todos88 = [
{ id: 3, content: 'HTML', completed: false },
{ id: 2, content: 'CSS', completed: true },
{ id: 1, content: 'Javascript', completed: false }
];
console.log(countCompletedTodos(todos)); // 1
3번풀이 - for문
// for문 풀이-true 갯수 구하기
// 따로 todos.completed를 변수에 담지 않았을때.
const toggleCompletedAll = todos => {
let count = 0;
for (let i = 0; i < todos.length; i++) {
if (todos[i].completed) {
count++;
}
}
return count;
};
const todos = [
{ id: 3, content: 'HTML', completed: false },
{ id: 2, content: 'CSS', completed: true },
{ id: 1, content: 'Javascript', completed: false }
];
console.log(toggleCompletedAll(todos)); // 1
반응형
'프론트 > JS)코딩테스트' 카테고리의 다른 글
Comments