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

时间:2011-08-31 10:18:11

标签: javascript arrays push node.js

以下代码:

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,但我在浏览器中的行为相同)

1 个答案:

答案 0 :(得分:1)

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.