2017-02-23 148 views
-2

我自己學習JavaScript,正在瀏覽教程,無法理解如何將第二個對象的值添加到第一個對象。我試圖看看這How can I add a key/value pair to a JavaScript object?,但我無法遵循它。 下面是我寫的代碼:如何將第二個對象的值添加到第一個對象?

var person1 = { 
     name: 'Joe', 
    role: 'specialist' 
}; 
var person2 = { 
    name: 'Mr. Roberts', 
    role: 'supervisor' 
}; 

function addObjectProperty(obj1, key, obj2) { 
    addObjectProperty(person1, 'manager', person2); 

    return (person1.manager = (person2.name + person2.role)); 
} 

console.log(person1.manager); 

我的結果回報:

undefined 

但它應該返回:

// --> { name: 'Mr. Roberts', role: 'supervisor' } 

可能有人好心勸進一步我?謝謝! :)

+3

到'addObjectProperty()的調用'需要是**外**的函數,而不是內部。 – Pointy

+0

非常感謝! – learninghowtocode

+0

@Pointy當我做你的建議時,我會得到:**先生。羅伯茨,主管**而不是** {姓名:'先生羅伯茨',角色:'主管'} **。我將如何解決這個問題?我嘗試添加** obj1 [key] = obj2 **,但它沒有改變任何東西。或者,易卜拉欣如何編寫下面的代碼是最好的方法呢?非常感謝! – learninghowtocode

回答

1

var person1 = { 
 
    name: 'Joe', 
 
    role: 'specialist' 
 
}; 
 
var person2 = { 
 
    name: 'Mr. Roberts', 
 
    role: 'supervisor' 
 
}; 
 

 
function addObjectProperty(obj1, key, obj2) { 
 
    obj1[key] = obj2; // using bracket notaion to add obj2 as a property of obj1 under the key key 
 
} 
 

 
// call the function outside its definition or it'll cause an infinite recursion 
 
addObjectProperty(person1, 'manager', person2); // person1.manager = person2 
 

 
console.log(person1);

+0

這工作,非常感謝! – learninghowtocode

相關問題