Кар*_*ова 1 javascript function object
社区!请给我一个提示。我有以下任务:
首先,创建一个具有以下结构的对象:
obj = {
x: 10,
y: 20,
inner: {
x: 20,
z: 30
},
foo2: {
k: 23,
p: 13
}
}
Run Code Online (Sandbox Code Playgroud)
编写函数 convert (obj),它得到参数 obj。该函数应该返回一个新对象:
newObj = {
x: 20,
y: 20,
z: 30,
k: 23,
p: 13
}
Run Code Online (Sandbox Code Playgroud)
函数应该只包含 for ... in ... 和 typeof 。
我正在尝试创建此函数,现在将 obj 复制到 newObj:
function convert(obj){
newObj = {};
for(key in obj){
newObj[key] = obj[key];
}
}
convert(obj);
Run Code Online (Sandbox Code Playgroud)
但我不确定如何使用 typeof 从 obj 中删除内部和 foo2 子对象,并将 x、z、k 和 p 的正确值分配给 newObj。
在课堂上,我们讨论了基本的对象计算,因此不需要花哨的对象方法来解决这个问题。
在这种情况下您需要递归
obj = {
x: 10,
y: 20,
inner: {
x: 20,
z: 30
},
foo2: {
k: 23,
p: 13
}
}
function convert(obj, newObj) {
if (!newObj) { // on first iteration creating a result object
newObj = {}
}
for(key in obj){
if (typeof obj[key] === 'number') { // if number - add, if exist - update
newObj[key] = obj[key];
} else { // if object - do the same one more time but for subobject and resulting object
convert(obj[key], newObj)
}
}
return newObj
}
console.log(convert(obj));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
54 次 |
最近记录: |