我在查找爲什麼persons
數組包含新的age
鍵:值對時遇到了一些問題。
我認爲通過切片(因此創建一個獨立的副本)我可以單獨在newArray
上工作,只能附加age
它......但它似乎更新persons
以及??
在此先感謝Javascript:在切片和附加鍵後重複數組不正確
const persons = [
{ first: 'Albert', last: 'Einstein', birthYear: 1879, deathYear: 1955 },
{ first: 'Isaac', last: 'Newton', birthYear: 1643, deathYear: 1727 },
{ first: 'Galileo', last: 'Galilei', birthYear: 1564, deathYear: 1642 },
];
function appendAge(originalArray) {
var newArray = originalArray.slice(0);
newArray.forEach(item => {
item['age'] = item.deathYear - item.birthYear;
})
return newArray
}
console.info(persons)
var newPersons = appendAge(persons)
console.info(newPersons)
因爲'.map()'創建了一個新數組,所以如果您也調用'.map()',則不需要使用'.slice()'。 – Barmar
@Barmar你是對的,我的不好,現在修好了 – nem035
真棒...感謝超級快速的回覆......我讀了一些關於淺與深的副本,但並沒有真正去掌握它。 ..這個解決方案是完美的。 – sigmazen