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

时间:2020-03-30 17:10:52

标签: javascript object nested-object

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

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

我正在尝试使用下面的结构

获得一个新对象
objB = {
      A: 1,
      B: 3,
    }

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

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以用Object.keys()遍历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%;}

答案 1 :(得分:0)

您应该仅遍历父对象的键,然后将内部对象的键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,
    }
相关问题