首页 > 解决方案 > 是否可以在不知道父键的情况下解构嵌套对象?

问题描述

我想知道是否可以在不知道父对象键的情况下解构嵌套对象?

这样做的原因是 mongoose 验证错误会在errors键中返回一个对象,并且该对象的每个条目都是另一个对象,其中键是有错误的字段的名称。

const data = {
  name: {
    path: 'name',
    name: 'The error message'
  },
  email: {
    path: 'email',
    name: 'Another error message'
  }
}

所以结果可能是这样的

{
  name: 'The error message',
  email: 'Another error message'
}

是否有可能这样做的唯一方法是使用for in循环并在其中执行解构赋值?

let message = {}
for (var k in data) {
  var { path, name } = data[k]
  message[path] = name
}

标签: javascriptobjectdestructuring

解决方案


const data = {
  name: {
    path: 'name',
    name: 'The error message'
  }
}

const {path, name} = Object.values(data)[0];

console.log(path, name);


推荐阅读