如何解决解构大嵌套对象的最佳方法是什么? 编辑:原答案:
我的目标是解构大(嵌套)对象并将其属性分配给变量,目前我有:
const { name,country,sunrise,sunset,timezone } =
this.state.weather?.city || {};
const { temp,feels_like } =
this.state.weather.list?.[0].main || {};
还有其他选项可以缩短/更好地适应此代码吗?
解决方法
编辑:
关键概念:
-
解构对象:
const data = { id: 1,name: "SO" } const { id,name,city = "N/A" } = data console.log(id,city);
-
解构数组:
const data = [ 1,2 ] const [first,second,third = "N/A"] = data console.log(first,third)
-
对象数组的解构:
const data = [ {id: 1,name: "SO"} ] const [ { id,city = "N/A" },second = {} ] = data console.log(id,city,second)
原答案:
以下是如何进行嵌套对象和数组解构:
// Input data
const that = {
state: {
weather: {
city: {
name: "new york",country: "usa",sunrise: "6 AM",sunset: "7 PM",timezone: "-4"
},list: [{
main: {
temp: 10,feels_like: 14
}
}]
}
}
};
// Nested Destructuring
const {
city: {
name,country,sunrise,sunset,timezone
},list: [{
main: {
temp,feels_like
}
},second]
} = that.state.weather;
// Results
console.log(name,timezone);
console.log(temp,feels_like);
使用默认值来避免错误-“无法读取未定义的属性”:
// Input data
const that = {
state: {}
};
// Nested Destructuring
const {
city: {
name,timezone
} = {},feels_like
} = {}
} = {},second] = []
} = that.state.weather ?? {};
// Results
console.log(name,feels_like);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。