2017-07-08 11 views
1

なぜスプレッドオペレータは 'Stratford'の値を 'HB woodlawn'に置き換えますか?これはどのように作動しますか?同じとオペレータを広げて値を置き換えますか?

const newObject = { name: 'Stratford', name: 'HB Woodlawn' }; 

プロパティ:あなたは文字通りの新しいオブジェクトにoldObject年代のプロパティを拡大するものと考えることができます

const oldObject = { name: 'Stratford' }; 
const newObject = { ...oldObject, name: 'HB Woodlawn' }; 

:それはこれであるために降りてくる何

const editName = (oldName, name, arr) => 
    arr.map(item => { 
    if (item.name === oldName) { 
     return { 
     ...item, 
     name 
     } 
    } else { 
     return item 
    } 
    }) 

let schools = [ 
    { name: "Yorktown"}, 
    { name: "Stratford" }, 
    { name: "Washington & Lee"}, 
    { name: "Wakefield"} 
] 
let updatedSchools = editName("Stratford", "HB Woodlawn", schools) 
console.log(updatedSchools[1]) // { name: "HB Woodlawn" } 
console.log(schools[1]) // { name: "Stratford" }, 

答えて

4

リテラルのキーは、最後の値を取得します。

+0

これは次のように修正する必要があります: {名前: 'HB Woodlawn'}; ' – Azmeer

+0

@Azmeer:質問は重複するプロパティ名の仕組みに関するものです。 – Ryan

関連する問題