본문 바로가기

codes56

05_compose2 function compose2(func1, func2) { //Q. 두 개의 함수를 입력받아 두 함수가 결합된 새로운 함수를 리턴 return function (num) { return func1(func2(num)); }; } 2022. 11. 20.
04_compose function compose(func1, func2, num) { // Q.두 개의 함수와 수(num)를 입력받아 num에 함수들을 num에 가까운 순서대로 적용한 결과를 리턴 //let output = compose(add5, square, 2); //console.log(output); // --> 9 //적용 순서 -> func2 먼저 적용하고 func1 //refer code // return func1(func2(num)); const result1 = func2(num); return func1(result1); } 2022. 11. 20.
06_pipe function pipe(...funcs) { //Q. 함수들을 입력받아 함수들이 입력된 차례대로 결합된 새로운 함수 리턴 // 입력된 차례대로 return function(num){ let result = num; for(let i = 0; i < funcs.length; i++){ result = funcs[i](result); } return result; } } //다시 풀어본 코드 function pipe(...funcs) { //Q. 함수들을 입력받아 //함수들이 입력된 차례대로 결합된 새로운 함수를 리턴 //1. function pipe의 인자로 ...funcs를 입력 해줌 //2. 함수를 결합 시킬 때 func1(func2(인수가 될 함수))이런 모습임 //3. 반복문을 사용해서 2번의 모.. 2022. 11. 17.
19_extend function extend(obj1, obj2) { //Q. 두 개의 객체를 입력받아 두 번째 객체의 속성들을 첫번째 객체에 추가 //1. 객체의 속성들을 비교해서 //2. 일치하는 속성들은 건들이지 않고 없는 속성만 //3. 첫번째 속성에 추가 for(let proty in obj2){ //obj2의 키 값 순회 if(!(proty in obj1)){ //obj1의 키가 없을 때 obj1[proty] = obj2[proty]; //obj1에 obj2의 속성 할당 } } } //다시 풀어 본 코드 function extend(obj1, obj2) { //Q. 두 개의 객체를 입력받아 두 번째 객체의 속성들을 첫번째 객체에 추가 //1.for in 구문으로 첫번짹 객체의 속성들에 일치하는 속성들이 있는지.. 2022. 11. 5.
18_getAllButLastElementOfProperty function getAllButLastElementOfProperty(obj, key) { //Q. 객체와 키를 입력받아 키에 해당하는 값이 배열인 경우 //마지막 요소가 제거된 새로운 배열 //1.obj[key]를 복사해서 newArr에 할당 let newArr = obj[key]; if(!(Array.isArray(newArr)) || newArr.length === 0){ //key에 해당하는 값이 배열인 경우 return []; } //2.newarr의 마지막 요소 제거 return newArr.slice(0,-1); } //다시 풀어본 코드 function getAllButLastElementOfProperty(obj, key) { //Q. 객체와 키를 입력받아 키에 해당하는 값이 배열인 경우.. 2022. 11. 5.
17_getValueOfNthElement function getValueOfNthElement(arr, num) { //Q. 배열과 수를 입력받아 //수가 가리키는 인덱스에 해당하는 객체의 'name' 속성값 리턴 //let output = getValueOfNthElement([{ name: 'Kelly' }, { name: 'Anna' }], 1); //console.log(output); // --> 'Anna' if(arr.length === 0){ //빈 배열 받으면 return 'no name'; } else if(num > arr.length-1){ //인덱스는 0부터 카운트하므로 num이 1이면 0번째를 출력해야 함 return arr[arr.length-1]['name']; } else return arr[num]['name'].. 2022. 11. 5.