配列に新しいage
キー:値のペアが含まれている理由がわかりません。
私はそれをスライスして(したがって、独立したコピーを作成することによって)私はnewArray
で単独で働くことができ、それにage
を追加することができました...しかし、persons
も更新しているようですね??事前に
おかげJavascript:sliceの後に重複した配列が正しくなく、keyValueが追加されています
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