js 数组的map方法
输入:一个数组 输出: 一个新的数组 两个数组中的元素存在着对应的关系
MDN:对原数组的每一项执行回到函数,并将回调的返回结果放到一个新的数组,其实呢,就是数组的映射(映射一词来源于数学,应用于各个学科领域)
数学解释:A 、 B 两个结合存在映射关系 那么 A中的元素 在B中存在唯一的一个元素与之对应,而这种从A到B的对应关系就是映射。
// 常用用例
let a = [
{
name:'张三',
age:7
},
{
name:'李四',
age:10
},
{
name:'王五',
age:12
}
]
// 1、 取值 以取所有人员的年龄字段 age 为例
let ages = a.map(p => p.age)
// 2. 设置新值
let a_copy = a.map(p => ({
...p,
relName:p.name
}))
a.forEach(a => a.sex= 1)
console.log(ages)
// [ 7, 10, 12 ]
console.log(a)
/*[
{ name: '张三', age: 7, sex: 1 },
{ name: '李四', age: 10, sex: 1 },
{ name: '王五', age: 12, sex: 1 }
]*/
console.log(a_copy)
/*
[
{ name: '张三', age: 7, relName: '张三' },
{ name: '李四', age: 10, relName: '李四' },
{ name: '王五', age: 12, relName: '王五' }
]
*/
总结 :
原数组和新数组 从在一定的对应关系
- 1、 新数组是直接取原数组的值
- 2. 新数组设置新的值,原数组不变
注意 像一下方式访问并不会报错,而是会返回undefined
let c = a.map(p => p.gender) [ undefined, undefined, undefined ]