javascript - ES6 对象赋值简化

标签 javascript object ecmascript-6 ecmascript-next

我有以下代码(运行良好)

const action = {
  type: types.CHANGE_ADMIN_USER_PASSWORD,
  password: initialState.admin.editUserPassword.password,
  confirm: initialState.admin.editUserPassword.confirmPassword,
  ...input
};

其中input{password: 'hello'}{confirm:'world'}。值可以不同,但​​只有一个键存在。

问题:有没有办法简化代码?例如,我只想拥有一次 initialState.admin.editUserPassword 。 UPD:initialState.admin.editUserPassword 具有两个以上属性,因此我无法将所有该对象包含到 action 中。

最佳答案

最简单的方法是 destructuring :

const { password, confirmPassword } = initialState.admin.editUserPassword;

const action = {
  type: types.CHANGE_ADMIN_USER_PASSWORD,
  password,
  confirm: confirmPassword,
  ...input
};

如果嵌套对象 (initialState.admin.editUserPassword) 仅具有这两个字段 (passwordconfirmPassword),并且不重命名confirmPasswordconfirm,您甚至可以执行以下操作:

const action = {
  type: types.CHANGE_ADMIN_USER_PASSWORD,
  ...initialState.admin.editUserPassword,
  ...input
};

关于javascript - ES6 对象赋值简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47014505/

相关文章:

javascript - 如何传递表单数据并重定向到另一个页面

java - Java中如何存储多人信息

javascript - es6 多行模板字符串,没有新行并允许缩进

java - 如何将对象转换为长数据类型java

objective-c - 如何在 Objective-C 中使用运算符 < 或 > 比较对象?

javascript - 使用 ES6 和 React 解构和重新排序数组

javascript - ES6 迭代类方法

javascript - 使用用户输入提供名称建议

javascript - 库存 list Dynagrid 演示

javascript - 每当以 Bootstrap 的形式出现无效的弹出消息时,我们如何才能停止发送数据?