javascript - 从一系列键中提取相同的值

标签 javascript object ecmascript-6 destructuring

我正在尝试使用解构快速从某些对象中提取“值”属性。有没有一种简单的方法可以从中获取它?我认为对于一些我还没有完全理解的复杂的解构事物来说可能是可能的。

我知道我可以使用循环等,但我想让它更优雅一点。我正在寻找一种非重复的、理想的 1-2 行解决方案。我想使用 map ,但这只适用于数组......

formData = {
  name: {val: 'myName', key: 'value', etc: 'more data'}
  province: {val: 'myProvince', key: 'value', etc: 'more data'}
  dateOfBirth: {val: 'myBDAY!', key: 'value', etc: 'more data'}
}


//desired outcome:
{
  name: 'myName',
  province: 'myProvince',
  dateOfBirth: 'myBDAY!'
}


//attempt 1
let customer = { name, province, dateOfBirth} = formData; //hrm doesn't get me there

最佳答案

解构用于从数组或对象的不同元素分配多个变量,这不是您正在做的事情。你可以这样做:

let customer = { 
    name: formData.name.val, 
    province: formData.province.val,
    dateOfBirth: formData.dateOfBirth.val
}

如果您不想显式列出所有属性,只需使用循环即可。

let customer = {};
for (var k of Object.keys(formData)) {
    customer[k] = formData[k].val;
}

关于javascript - 从一系列键中提取相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929332/

相关文章:

javascript - typescript ,语法错误 : Unexpected token {

javascript - jQuery JSON 错误 : Syntax error, 无法识别的表达式

javascript - 当鼠标移动到屏幕上的任何位置而不仅仅是元素本身时,如何显示 div?

javascript - 将 JavaScript 代码限制/验证到特定库

javascript - 使用 lodash 将对象数组转换为对象

javascript - 是否可以通过数组循环动态生成 react 组件?

javascript - 如何将 redux 与 fela 一起使用并使用react?

javascript - 在javascript中制作表单时如何获得间距?

javascript - 如何检查这些字符串中的任何一个是否存在于另一个字符串中,如果在 JavaScript 中答案为是,如何替换它?

javascript - 连接对象以用于图表