array.push (SomeObject) не копирует массив, содержащийся в SomeObject - PullRequest
1 голос
/ 31 августа 2011

следующий код:

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 Ответ

1 голос
/ 31 августа 2011

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.
...