传播运营商取代价值?

Hyr*_*ule 1 javascript

为什么价差运营商会在这里用'HB woodlawn'取代'Stratford'的价值?这是如何运作的?

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" },
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 11

它归结为:

const oldObject = { name: 'Stratford' };
const newObject = { ...oldObject, name: 'HB Woodlawn' };
Run Code Online (Sandbox Code Playgroud)

您可以将其视为将oldObject对象扩展为新对象文字:

const newObject = { name: 'Stratford', name: 'HB Woodlawn' };
Run Code Online (Sandbox Code Playgroud)

文字中具有相同键的属性获取最后一个的值.

  • @Azmeer:问题是关于重复的属性名称是如何工作的,所以没有. (3认同)
  • 它应该更正为:`const newObject = {name:'HB Woodlawn'};` (2认同)