프론트엔드✏️/코드캠프

알고리즘 - reduce, 삼항연산자

당근먹는하니 2022. 5. 18. 00:23
728x90
반응형

  짝수와 홀수

//내가 한 방법
if(num%2 === 0) return "Even";
else return "Odd";

//다른 방법
 return num % 2 ? "Odd" : "Even";

  reduce() 

 reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고,
하나의 결과값을 반환합니다.
const array = [1, 2, 3, 4];

const init = 0;
const sum = array.reduce(previous, current) => previous + current, init);

console.log(sum);// 0 + 1 + 2 + 3 + 4 = 10​

MDN 예제코드

curr이 뭔가 했는데  currentValue였다. 

 

arr.reduce(callback[, initialValue])

callback 함수 : 명시적으로 코드로 호출되어 사용되는 것이 아니라, 즉시 또는 어떤 이벤트가 생겼을 때 다른 코드의 인수로서 넘겨주는 기능을 한다. (함수 안에서 실행되는 또 다른 함수)

 

var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
  return accumulator + currentValue;
}, 0);
// sum is 6


//위의 코드를 화살표 함수로 작성한 것 
var total = [ 0, 1, 2, 3 ].reduce(
  ( accumulator, currentValue ) => accumulator + currentValue,
  0
);

MDN 예제(배열의 모든 값 합산) 

화살표 함수로 표현하면 계속 헷갈리는 것 같아

인라인, return 생략 가능 

 

  가운데 글자 가져오기

function solution(s) {
    var answer = '';
    let mid = s.length%2;

    if(mid === 0) {
        answer = s[s.length/2-1] + s[s.length/2]; 
    } else {
        mid = Math.floor(s.length/2);
        answer = s[mid];
    }
    return answer;
} //내가 한 것
function solution(s) {
    return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
} //다른 사람의 풀이

  삼항 조건 연산자

조건부 삼항 연산자는 JavaScript에서 세 개의 피연산자를 취할 수 있는 유일한 연산자입니다. 맨 앞에 조건문 들어가고. 그 뒤로 물음표(?)와 조건이 참truthy이라면 실행할 식이 물음표 뒤로 들어갑니다.
바로 뒤로 콜론(:)이 들어가며 조건이 거짓falsy이라면 실행할 식이 마지막에 들어갑니다.
보통 if 명령문의 단축 형태로 쓰입니다.

condition ? exprIfTrue : exprIfFalse
//조건문 ? 참일 때 : 거짓일 때

 

 

728x90
반응형