array.push(SomeObject)不复制SomeObject中包含的数组

以下代码:

var ResultSet= { 'ResultSetName': "Resultset1", Values: [ { Val1: 1, Val2: 2, Val3: 'SomeName' } ] } var AllResults= { 'MyListName': 'SomeList', 'MyResults': { Results: [] } } AllResults.MyResults.Results.push(ResultSet); console.log(AllResults.MyResults); console.log(AllResults.MyResults.Values); 

产生输出:

 { Results: [ { ResultSetName: 'Resultset1', Values: [Object] } ] } undefined 

不过,我期望它产生如下的东西:

 { Results: [ { ResultSetName: 'Resultset1', Values: [Object] } ] } [ { Val1: 1, Val2: 2, Val3: 'SomeName' } ] 

我错过了什么? 为什么对象中包含的数组不被复制? 什么才是达到预期结果的正确方法?

(我使用node.js 1.8.2,但我在浏览器中的行为相同)

AllResults是一个对象。
AllResults.MyResults是一个对象
AllResults.MyResults.Results是一个数组

AllResults.MyResults.Results [0]是您的ResultSet对象。

 console.log(AllResults.MyResults.Results[0].Values); //This is where your Values object ended up.