如何将一个对象属性值添加到另一个对象作为新属性值

时间:2018-02-23 12:53:19

标签: javascript

例如,我有一个带键1的对象:

1:{{name:alice,surname:doe}}

我有另一个具有相同键1的对象:

1:"A"

通过迭代我们检查两个键是否匹配(在这种情况下为1和1),因此我们将第二个对象A添加到第一个对象作为等级:所以最终对象看起来像

1:{{name:alice,surname:doe,grade:A}}

我正在添加图片以便更好地解释。

enter image description here

这就是我所尝试的:问题是缺少00001密钥:

    Object.keys(localallcourseobject).forEach(function(key){
  if(key in passedcoursesgrade) {
    var c = Object.assign(localallcourseobject[key],{grade:passedcoursesgrade[key]});

   console.log(c);

  }
});

enter image description here

2 个答案:

答案 0 :(得分:0)

我为您准备了这个代码段,它会在ab中查找相同的属性,并会在对象grade中添加c属性匹配项:



var a = {1: {name:'alice',surname:'doe'}}
var b = {1:"A"}
var c = Object.assign({}, a)

for (var attr in a) {
  for (var attr_ in b) {
    if (attr == attr_) {
      c.grade = b[attr_]
    }
  }
}

console.log(c)




如果您只想将1属性替换为对象,请执行以下操作:



var a = {1: {name:'alice',surname:'doe'}}
var b = {1:"A"}
var c = Object.assign(a[1], {grade: b[1]})

console.log(c)




问候

答案 1 :(得分:0)

查看Object.assign,它允许您组合各种对象值。下面是将两个对象组合成一个具有所需结构的简单方法。

var a = {1: {name:'alice',surname:'doe'}}
var b = {1:"A"}
var c = Object.assign(a[1], {grade: b[1]})

console.log(c)