-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobject02.js
More file actions
67 lines (54 loc) · 1.36 KB
/
object02.js
File metadata and controls
67 lines (54 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// 객체를 선언 (number, string, boolean, null, undefined, object, array, function)
// 함수 : 객체 value의 데이터 타입이 number인 [key, value]만 뽑아서 새로운 객체를 return
// reduce, entries
const exObj = {
age1 : 10,
age2 : 20,
name : "홍길동",
isFemale : false,
inNull : null,
isUndefined: undefined,
user : {
name: "희환",
},
arr: ["a", "b", "c"],
getAge: () => {
console.log("getAge");
},
getName:() => {
console.log("getName");
},
};
const getOnlyNumberObj1 = (obj) => {
const objEntries =Object.entries(obj);
console.log("Entries",objEntries);
const result = objEntries.reduce((acc, [key, value]) => {
if(typeof value === "number"){
//key : age1, value:10
acc[key] = value;
}
acc.age1= value;
return acc;
}, {})
return result;
};
// 리펙토링 (Refactoring)
const getOnlyNumberObj2 = (obj) =>{
Object.entries(obj).reduce((acc, [key, value])=>{
if (typeof value === "number") acc[key] = value;
return acc;
},{});
}
// acc["age1"] = 10; => 문자열 변수나, 순수 문자열을 통해 객체에 접근할 때 사용.
// acc[key]
// acc.age1 = 10 => 미리 만들어진 객체에 대해서만 사용가능
/*
{
age1 : 10,
age2 : 20
}
const resultObj = {};
objEntries.forEach((item)=>{});
*/
getOnlyNumberObj1(exObj);
getOnlyNumberObj2(exObj);