分享一下,昨天看到的一个数组题,以及自己的解题步骤:
题目:
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, '地址': '北京'}
// ]
答案:
const arr = [
{name: '张三', age: 18, address: '湖北'},
{name: '李四', age: 18, address: '安徽'},
{name: '王五', age: 18, address: '北京'}
]
const map = { name: '姓名', age: '年龄', address: '地址'}
function change(arr, map) {
// 定义空数组
let newArr = []
// forEach 循环遍历数组
arr.forEach( item => {
// 定义一个空对象
let obj = {}
// for in循环遍历这个对象 并赋值
for (let key in map ){
obj[map[key]]= item[key]
}
// 添加进数组
newArr.push(obj)
})
return newArr
}
const arr2 = change(arr, map)
console.log(arr2)
// [
// {'姓名': '张三', '年龄': 18, '地址': '湖北'},
// {'姓名': '李四', '年龄': 18, '地址': '安徽'},
// {'姓名': '王五', '年龄': 18, '地址': '北京'}
// ]