gpt4 book ai didi

javascript - 如何编写内联对象属性的函数

转载 作者:行者123 更新时间:2023-11-29 15:27:04 25 4
gpt4 key购买 nike

我有以下对象:

var ob = {
view: {
name: 'zpo',
params: {
taskId: 3,
zuka: 'v'
}
}
}

我需要以下形式的对象:

{
"view.name":"zpo",
"view.params.taskId":3,
"view.params.zuka":"v"
}

我写了一个函数可以做到这一点,但问题是它需要传递给它的外部变量。这是这个函数:

function inline(o, result, container) {
for (var p in o) {
if (typeof o[p] === "object") {
inline(o[p], result.length > 0 ? result+'.'+p : p, container);
} else {
container[result + '.' + p] = o[p];
}
}
}

var ob = {
view: {
name: 'zpo',
params: {
taskId: 3,
zuka: 'v'
}
}
}

var c = {};
var r = inline(ob, '', c);

有什么方法可以编写此函数以返回正确的结果而不需要传递 resultcontainer 外部变量?

最佳答案

如果我没理解错的话,你想避免使用"empty" 参数调用你的inline() 函数。

您可以直接在您的函数中捕获这种情况:

function inline(o, result, container) {
result = result || '';
container = container || {};
...
}

var r = inline(ob);

对于函数的递归部分,您仍然需要此参数。

关于javascript - 如何编写内联对象属性的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com