将 javascript 对象属性更改为嵌套对象值

Change javascript Object attributes to nested object values

所以我有一个具有以下格式的对象

const objA = {
              A: {a: 1, b: 2},
              B: {a: 3, b: 4},
             }

我正在尝试获取具有以下结构的新对象

objB = {
      A: 1,
      B: 3,
    }

其中每个键的值是嵌套对象中属性 a 的值。我在使用函数式编程时遇到了问题

谢谢!

您应该只遍历父对象的键,然后将内部对象的键 a 的值赋给它们。就是这样,

const objA = {
              A: {a: 1, b: 2},
              B: {a: 3, b: 4},
             }
const objB = {}

for (var key in objA) {
    if (objA.hasOwnProperty(key)) {
         objB[key] = objA[key].a
    }
}

输出:

objB = {
      A: 1,
      B: 3,
    }

你可以遍历Object.keys() with Array.prototype.reduce()

const objA = {A:{a:1,b:2},B:{a:3,b:4},},
             
      result = Object.keys(objA).reduce((r,key) => (r[key] = objA[key].a, r),{})
      
console.log(result)
.as-console-wrapper{min-height:100%;}