본문 바로가기

codes/객체9

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.
14_getElementOfArrayProperty function getElementOfArrayProperty(obj, key, index) { //Q. 객체, 키, 수를 입력받아 //주어진 키에 해당하는 값이 배열인 경우 //수가 가리키는 인덱스에 해당하는 요소 리턴 let arrProperty = obj[key]; for(let [key,vlaue] of Object.entries(obj)){ if(Array.isArray(obj[key])){ //주어진 키에 해당하는 값이 배열인지 확인 return obj[key][index]; } } } //다시 풀어본 것 function getElementOfArrayProperty(obj, key, index) { let arrProperty = obj[key]; //Q. 객체, 키, 수를 입력받아 //주어.. 2022. 11. 5.
13_printObject function printObject(obj) { //Q. 객체를 입력받아 키-값 쌍을 표현하는 문자열 리턴 //각 문자열은 한 줄에 키:값 형태로 구성 //각 문자열 끝에는 줄 바꿈 문자가 포함 //Object.entries(user); //키-값 쌍으로 배열로 출력 //[['name', 'Steve'],['age', 13],['gender', 'Male']] let result = ''; for(let [proty,value] of Object.entries(obj)){ result = result + `${proty}: ${value}\n`; } return result; } //두번째 풀어본 것 function printObject(obj) { //Q. 객체를 입력받아 키-값 쌍을 표현하는 문자열.. 2022. 11. 5.
08_removeOddValues function removeOddValues(obj) { //Q. 객체를 입력 받아 홀수를 값으로 갖는 속성 모두 제거 for (let prop in obj) { if (typeof obj[prop] === 'number' && obj[prop]%2 !== 0) { // 객체의 타입이 숫자 && 객체의 prop이 2를 나누었을때 0이 아닌 값이 나오면(홀수 값이면), delete obj[prop]; } } } //두 번째 풀어 본 것 function removeOddValues(obj) { //Q. 객체를 입력 받아 홀수를 값으로 갖는 속성 모두 제거 //홀수 판단은 number type에만 적용됨 //타입 확인과 동시에 속성의 값도 홀수인지 확인 for(let property in obj){ if(ty.. 2022. 11. 5.