销毁嵌套对象

Bla*_*bla 2 javascript ecmascript-6

我想使用对象析构来简化我的代码。我从服务器获取数据并且解析是对象:

data = {
  current: {
     humidity: 73
  }
}
Run Code Online (Sandbox Code Playgroud)

最终函数应如下所示,但这不起作用:

extractData({data.current.humidity: humidity  }) {
            return { humidity };
        }

extractData(data);
Run Code Online (Sandbox Code Playgroud)

如何为这种对象做功能?

T.J*_*der 6

解构模式就像对象文字,所以你不使用点,你使用嵌套(同样,引用对象 [ data]的变量的名称不相关):

// (I assume this is a method in a class; otherwise, add `function`)
extractData({current: {humidity}}) {
    return { humidity };
}
Run Code Online (Sandbox Code Playgroud)

现场示例:

// (I assume this is a method in a class; otherwise, add `function`)
extractData({current: {humidity}}) {
    return { humidity };
}
Run Code Online (Sandbox Code Playgroud)

请注意,我将您的返回值保留在那里,它是一个具有属性的对象humidity。如果您只想要湿度,请不要使用{}在它周围:

// (I assume this is a method in a class; otherwise, add `function`)
extractData({current: {humidity}}) {
    return humidity;
}
Run Code Online (Sandbox Code Playgroud)

现场示例:

function extractData({current: {humidity}}) {
    return { humidity };
}

const data = {
  current: {
     humidity: 73
  }
};

console.log(extractData(data));
Run Code Online (Sandbox Code Playgroud)


我假设您想要一个函数,但正如 Rittoo 所说,如果您只想获取humidity; 以他们的回答为例。