我使用了具有嵌套数据的API。数据以小页面形式发送(一次少于10个JSON对象),并且检索到的信息仅在该页面上使用,不会在整个会话中持续存在。我已经尝试过使用Immutable JS和Native JS来存储JSON。我使用不可变的问题是,要将信息呈现到模板中,它将经历一系列此类的类型转换。
JSON -> JS -> ImmutableMap -> JS
因此,我更喜欢使用本机JS。缺点是,使用getIn()检索映射中的字段时,不变的JS API非常方便。对于本机JS,我使用方括号访问嵌套的对象字段。
const A = { B : { C: D }};
const d = A['B']['C'];
这可能很冗长。我不确定不可变JS是否能为我的用例提供更好的性能。它不是一个大型的对象映射,并且我认为从JS转换为不可变的JS时会有一些开销。但是,我也不确定使用方括号访问嵌套对象的属性有多防御。
最佳答案
点访问
您可以按以下方式访问数据:
const A = { B : { C: 'D' }};
const d = A.B.C;
用括号或点运算符访问属性之间有很大的区别。
解构
您还可以通过销毁实现完全相同的事情:
const A = { B : { C: 'D' }};
const { B: { C: d }} = A;
处理未定义
为避免未定义,可以在解构中使用默认值:
const getD = ({B : { C :d } = {}} = {}) => console.log(d)
getD(undefined);// -> undefined
要么
const { B: { C : d } = {} } = {}
console.log(d); // -> undefined
关于javascript - 从嵌套的JavaScript对象检索属性的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60159440/