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},
// ]