【问题标题】:array.push(SomeObject) does not copy an array contained in SomeObjectarray.push(SomeObject) 不会复制 SomeObject 中包含的数组
【发布时间】:2011-11-07 18:05:38
【问题描述】:

以下代码:

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

【问题讨论】:

    标签: javascript arrays push node.js


    【解决方案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.
    

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 2013-07-23
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多