gpt4 book ai didi

javascript - 嵌套对象中的默认字段值

转载 作者:行者123 更新时间:2023-11-30 09:33:30 25 4
gpt4 key购买 nike

我正在尝试从 JSON 创建一个对象。

我的对象的一部分看起来像

a: {
name: "A name",
b: {
c: {
d: []
}
}
}

为了节省带宽,空数组和空对象从 JSON 中剥离,所以我收到的 JSON 是

{ "a": { "name": "A name" }}

如果我只是将 JSON 转换为一个对象,当我尝试执行类似 a.b.c.d.length 的操作时,这会导致错误,因为 undefined 没有长度。

目前,我正在用类似的东西填充缺失的字段

const json = getJson();
const obj = {
...json,
a: {
...json.a,
b: {
...json.a.b,
c: {
...json.a.b.c,
d: json.a.b.c.d || []
}
}
}
};

这非常冗长,当有多个字段需要默认值时会变得更加丑陋。

一个明显的解决方案是不从传输的 JSON 中删除空数组。假设那是不可能的,有没有更好的方法来处理这种情况?

在实际情况下,每个级别都有多个字段,因此所有展开运算符都是必需的。 (即使它们不是,我也希望将它们包括在内,因为该结构将来可能会增长。)

编辑:我没有使用 JQuery。我正在使用 whatwg-fetch 来检索数据。

最佳答案

我会建议某种解决方案,您可以在其中建立一个预先确定的模式,并继续省略空数组/值。然后你可以做类似的事情

_.get(object, 'property.path.here', defaultValue)

lodash.get() ,其中 defaultValue 由您的架构确定为空字符串 ""0null 等。

关于javascript - 嵌套对象中的默认字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44935746/

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