首页 > 解决方案 > 破坏嵌套对象

问题描述

我想使用对象破坏来简化我的代码。我正在从服务器获取数据,解析是对象:

data = {
  current: {
     humidity: 73
  }
}

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

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

extractData(data);

如何为这种对象做功能?

标签: javascriptecmascript-6

解决方案


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

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

现场示例:

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

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

console.log(extractData(data));

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

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

现场示例:

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

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

console.log(extractData(data));


我以为你想要一个函数,但正如 Rittoo 所说humidity,如果你只想获得;的值,你就不需要一个函数。例如,请参阅他们的答案。


推荐阅读