js中常常操作数组或对象进行增删改查一系列操作,遇到复杂的数组对象结构使用对数组的操作方法会报错,见案例:
const arr = [
{name: '张三', age: 18, address: '湖北'},
{name: '李四', age: 18, address: '安徽'},
{name: '王五', age: 18, address: '北京'}
]
const map = { name: '姓名', age: '年龄', address: '地址'}
function change(arr, map) {
// 在这里写代码
}
const arr2 = change(arr, map)
console.log(arr2)
// [
// {'姓名': '张三', '年龄': 18, '地址': '湖北'},
// {'姓名': '李四', '年龄': 18, '地址': '安徽'},
// {'姓名': '王五', '年龄': 18, '地址': '北京'}
// ]
需要得到的结果:使用 map对象的属性值批量替换arr数组对象里面的属性值得到新的数组对象arr2
打印结果如上图所示
代码演示:
function change(arr, map) {
// 在这里写代码
let newArr=[]
for (let i = 0; i < arr.length; i++) {
let obj={}
for(let key in arr[i]){
obj[ map[key]]=arr[i][key]
}
newArr.push(obj)
}
return newArr
}
const arr2 = change(arr, map)
console.log(arr2)
// [
// {'姓名': '张三', '年龄': 18, '地址': '湖北'},
// {'姓名': '李四', '年龄': 18, '地址': '安徽'},
// {'姓名': '王五', '年龄': 18, '地址': '北京'}
// ]