-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path23.Object_Manipulation.js
More file actions
156 lines (146 loc) · 4.21 KB
/
23.Object_Manipulation.js
File metadata and controls
156 lines (146 loc) · 4.21 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*
Here we will be performing operations like
loop
search
create
update
delete
in object/nested objects at n levels
*/
// This function will print all the key value pairs at all levels
function print(user) {
Object.entries(user).forEach(([key, value]) => {
if (typeof value === "object" && !Array.isArray(value)) {
print(value);
return;
} else {
console.log(key, value);
}
})
}
// Search for key at n nested levels | It will return that key value pair
function searchKey(user, str = "obj5") {
Object.entries(user).forEach(([key, value]) => {
if (typeof value === "object" && !Array.isArray(value)) {
// console.log(key);
if (key === str) {
console.log(key, value);
return;
}
searchKey(value);
return;
} else {
if (key === str) {
console.log(key, value);
return;
}
}
})
}
// Update the value at n nested levels | It will return that key value pair
function updateKey(user, updated_value, str = "age") {
Object.entries(user).forEach(([key, value]) => {
if (typeof value === "object" && !Array.isArray(value)) {
// console.log(key);
if (key === str) {
user[key] = updated_value;
return;
} else {
updateKey(value,updated_value,str);
}
} else {
if (key === str) {
user[key] = updated_value;
return;
}
}
})
return;
}
// Delete the value at n nested levels | It will return that key value pair
function deleteKey(user, str = "obj5") {
Object.entries(user).forEach(([key, value]) => {
if (typeof value === "object" && !Array.isArray(value)) {
if (key === str) {
delete user[key];
return;
} else {
deleteKey(value,str);
}
} else {
if (key === str) {
delete user[key];
return;
}
}
})
return;
}
// Delete the value at n nested levels | It will return that key value pair
function createKey(user, level, str, new_key, new_value) {
if (level === 0) {
user[new_key] = new_value;
return;
}
Object.entries(user).forEach(([key, value]) => {
if (typeof value === "object" && !Array.isArray(value)) {
if (key === str) {
user[new_key] = new_value;
return;
} else {
createKey(value, level, str, new_key, new_value);
}
} else {
if (key === str) {
user[new_key] = new_value;
return;
}
}
})
return;
}
let user = {
"name": "John",
"age": 20,
"branch": "Electrical",
"obj": {
count: 23,
"student": {
"brt": 34,
}
},
"obj2": {
"name": "dsklld",
ef: "dnfls",
"obj3": {
"obj4": {
"obj5": ["23", "34", "45"]
}
}
}
}
// This function will search the key at the n nested level
// Looping over object property names
// Keys method or values method will return an array
// That array will contain all the properties of passed object as its element
let properties = Object.keys(user);
// for(let prop of properties){
// console.log(prop);
// }
// console.log(properties);
// Lopping over object property values
// values method return an array
let value = Object.values(user);
// console.log(value);
// Looping over the property name and property value
let entries = Object.entries(user); // return the array of arrays containing key value elements in each array
// ie [key,value] [[k1,v1],[k2,v2],[k3,v3].....]
// console.log(entries);
// Object.entries(user).forEach(([key,value]) => {
// console.log(typeof key,typeof value)
// });
// searchKey(user);
// updateKey(user,50,"age");
// deleteKey(user);
createKey(user, 1, "obj4", "course", "English"); // main_obj | level at which you want to add the key | nested_object_name | new_key | new_value
console.log(user);