function removeNumbersLargerThan(num, obj) {
for(let key in obj){
if(typeof obj[key] === 'number'){
if(obj[key]>num){
delete obj[key];
}
}
}
// TODO: 여기에 코드를 작성합니다.
}
console.log(typeof)
typeof 123
"number"
typeof (123)
"number"
-> 소가로()
가 있든 없든 메소드가 진행 된다.
function getElementOfArrayProperty(obj, key, index) {
let arrProperty = obj[key];
for(const key in obj){
if(Array.isArray(obj[key])===true){
return obj[key][index];
}else{
return undefined;
}
}
// key의 값이 배열인지 확인한다
// 배열일 경우 index의 요소를 리턴한다.
// TODO: 여기에 코드를 작성합니다.
}
function getElementOfArrayProperty(obj, key, index) {
let arrProperty = obj[key];
if(Array.isArray(arrProperty)===true){
return arrProperty[index];
}else{
return undefined;
}
// TODO: 여기에 코드를 작성합니다.
}
function getAllButLastElementOfProperty(obj, key) {
let arr= [];
if(Array.isArray(obj[key])===true && obj[key].length !== 0){
//주어진 객체와 그 키의 값이 배열이고 빈 배열이 아닐경우
arr= obj[key].slice();
arr.pop()// 마지막 요소가 제거된 배열을 리턴한다.
return arr;
}else{
return [];
}
// 그게 아닐경우
// 빈배열을 리턴합니다.
// TODO: 여기에 코드를 작성합니다.
}
obj[key].slice() 를 통해서 배열을 복사 한다. 그 이유는 원본 객체를 손상하면 안되기 때문이다.
pop을 통해서 바로 제거하면 원본이 손상된다 그래서 slice를 사용했다.
페어분이 푼 답안
function getAllButLastElementOfProperty(obj, key) {
let arr = [];
if(Array.isArray(obj[key])=== true && obj[key].length !==0){
arr = obj[key].slice(0,obj[key].length-1)
return arr;
}else{
return [];
}
// TODO: 여기에 코드를 작성합니다.
}
obj[key].length-1
)그 값을 제거한 후 바로 리턴을 하였다. (4) Object.values(obj) / Object.keys(obj) / Math.max(...arr)
코플릿 21번 문제를 풀다가 객체의 key값이나 value값을 배열로 만들어서 가장 큰 값을 구하려고 했을때 찾아본 method입니다. 물론 겨룩 문제를 풀때는 다른 방법으로 접근했지만, 알아둬야 할것 같아서 정리합니다.
Object.values()
정의: 전달된 파라미터 객체가 가지는 (열거 가능한) 속성의 값들로 이루어진 배열을 리턴합니다.
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.values(object1));
// expected output: Array ["somestring", 42, false]
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// expected output: Array ["a", "b", "c"]
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// expected output: 3
(5) for 반복문 continue vs break
let x=1;
while(x<20){
if(x===5){
break;
}
x= x+1;
}
// 블록의 범위는 while 반복문이다.
x는 20까지 하도록 반복문을 설정하였으나, x가 5가 되는 순간 반복문이 끝나게 된다.
let x=1;
while(x<10){
x= x+1;
if(x===5){
continue;
}
}
결과값은 5가 빠진 채로 찍히게 된다.