개발/javascript

자바스크립트 코딩 테스트 몇가지(5) - 응용

희운1205 2022. 5. 25. 13:38
반응형

1.  활성화된 값의 개수 가져오기

문제 :  object 에 담긴 값중 특정 키값을 제외한 나머지중 value가 true인 속성의 개수를 리턴합니다.

* 입력 : 
obj = { option1 : false,   option2 : true,   option3 : false,  option4 : true,   option5 : false,   option6: false }
exception = 'option2, option4';

* 출력 :
0

function solution(obj, exception) {
    var answer = 0;
    for (const prop in obj) {
    	if (exception.indexOf(prop) === -1) {
          if (obj[prop]) {
               answer++;
          }
       }
    } 
    return answer;
}

let opt = { option1 : false,   option2 : true,   option3 : false,  option4 : true,   option5 : false,   option6: false };
let exception = 'option2, option4';

let opt1 = { option1 : true,   option2 : true,   option3 : true,  option4 : true,   option5 : false,   option6: false };
let exception1 = 'option1';

let opt2 = { option1 : false,   option2 : true,   option3 : true,  option4 : true,   option5 : false,   option6: false };
let exception2 = 'option3';

console.log(solution(opt, exception)); // 0
console.log(solution(opt1, exception1)); // 3
console.log(solution(opt2, exception2)); // 2

2. 선택한 값만 활성화 시키고 나머지는 비활성 처리

문제 : object에 담긴 값중 선택한값과 일치하는 값만 활성화 시키고 나머지는 비활성 처리합니다.

*입력 :
obj = { option1: false, option2: true, option3: true, option4: false };

* 출력 
obj = { option1: false, option2: false, option3: false, option4: true };

var obj = { option1: false, option2: true, option3: true, option4: false };

function solution(obj, sel) {
  var answer;
    Object.keys(obj).forEach(key => {
      obj[key] = key === sel;
    });
  answer = obj;
  return answer;
}

console.log(solution(obj, 'option4'));
// 결과
var obj = { option1: false, option2: false, option3: false, option4: true };

 

반응형