我有一個循環經過對象MyArrayOfObjects的數組,然後推壓的對象到一個新的數組這樣的:推JavaScript對象到陣列
var NewArray = new Array();
for (i = 0; i < MyArrayOfObjects.length; i++) {
TempObject = null;
TempObject = new Object();
// I have logic that copies certain properties but not others
// but overall it looks like this:
TempObject.prop1 = MyArrayOfObjects[i].prop1;
TempObject.prop2 = MyArrayOfObjects[i].prop2;
NewArray.push(TempObject);
}
正如我通過MyArrayOfObjects環,我清除TempObject和創建每次都有新的。 NewArray是否包含我正在複製的對象或只是對被複制對象的引用,然後在循環迭代時會被刪除?
謝謝。
'TempObject = null;'如果你有'TempObject = new Object();'之後? – mc10
我想確保在創建新對象之前清除最初的對象。 null是不需要的? – frenchie
@frenchie正確,不需要。此外,你應該簡單地寫'var TempObject = {};'甚至'var TempObject = {prop1:MyArrayOfObject [i] .prop1,prop2:MyArrayOfObjects [i] .prop2};''甚至'NewArray.push({prop1 :MyArrayOfObjects [i] .prop1,prop2:MyArrayOfObjects [i] .prop2});';所有這三個將導致10個新對象被推入陣列。 – Phrogz