引用我有一個數組如下數組對象數組的Javascript中
var sample = [{a:1, b: 1, c:1}, {a:1, b: 1, c:1}, {a:1, b: 1, c:1}];
我然後運行下面的代碼,並嘗試groupsOfItems[0].sample[0].a = 10
,groupsOfItems[0].sample[0].a
,groupsOfItems[1].sample[0].a
和groupsOfItems[2].sample[0].a
得到改變,以10
怎麼辦我阻止了這個?
var sample = [{a:1, b: 1, c:1}, {a:1, b: 1, c:1}, {a:1, b: 1, c:1}];
var groupsOfItems = [];
for(let i = 0; i < 10; i++) {
var item = {};
item.sample = _.clone(sample);
groupsOfItems.push(item);
}
groupsOfItems[0].sample[0].a = 10
console.log(groupsOfItems[0].sample[0].a,groupsOfItems[1].sample[0].a,groupsOfItems[2].sample[0].a);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
我爲你創建了一個片段。請在將來這樣做。測試代碼時節省大量時間 – mplungjan
請謹慎使用庫克隆對象(或者一般情況下)。如果在克隆的對象上調用方法,該方法仍將引用原始對象,並將修改原始對象,而不是克隆的對象。 –