使用map修改数据

55 阅读1分钟

1、使用map实现一个函数,用于修改Array中的数据,并且不影响原来的Array。

// 循环arr,如果找到对应的oldName,则修改成新的name
const editName = (oldName, name, arr) =>
  arr.map((item) => (item.name === oldName ? { ...item, name } : item));

const highSchools = [
  { name: "Yorktown" },
  { name: "Washington & Liberty" },
  { name: "Wakefield" },
];

let updatedSchools = editName("Yorktown", "HB Woodlawn", highSchools);

// 不影响原来的Array
console.log(updatedSchools[0]); // HB Woodlawn
console.log(highSchools[0]); // Yorktown

2、使用map将对象转换成数组

const schools = {
  Yorktown: 10,
  "Washington & Liberty": 2,
  WakeField: 5
}

// 对象没有map()方法,所以使用Object.keys().map
const schoolArray = Object.keys(schools).map(key => ({
  name: key,
  wins: schools[key]
}))

console.log(schoolArray);
// [
//   {name: "Yorktown", wins: 10},
//   {name: "Washington & Liberty", wins: 2},
//   {name: "WakeField", wins: 5},
// ]