使用Spotify Web API时,如何从链式对象中解构同名属性为不同变量?
解决链式对象解构的变量重复声明问题
你遇到的核心问题是重复声明了同一个变量名,而且没有给两个不同路径的new_collection_listeners值分配不同的变量名。我们可以通过解构时的别名语法来解决这个问题:
方案1:分两次解构并指定别名
// 将 current 路径的 new_collection_listeners 赋值给 currentListeners const { current: { metrics: { new_collection_listeners: currentListeners }}} = track.spotify; // 将 previous 路径的 new_collection_listeners 赋值给 previousListeners const { previous: { metrics: { new_collection_listeners: previousListeners }}} = track.spotify;
方案2:一次性嵌套解构并指定别名
如果想更简洁,可以在同一行完成解构:
const { current: { metrics: { new_collection_listeners: currentListeners }}, previous: { metrics: { new_collection_listeners: previousListeners }} } = track.spotify;
原理说明
这里的冒号是ES6解构的别名语法,格式为:原属性名: 新变量名。它的作用是把对象中原属性名对应的值,赋值给新变量名。这样我们就能把两个相同属性名但不同路径的值,分别存到currentListeners和previousListeners这两个不重名的变量里,既避免了重复声明的错误,也能正确获取到你需要的两个数据。
内容的提问来源于stack exchange,提问作者Tomas Eglinskas
相关产品推荐
相关产品推荐

