arr.map() 方法返回一个新数组,数组中的元素为原始数组arr中的元素调用函数处理后的值。
map() 方法会按照原始数组元素顺序依次处理元素。
注意:
-
map() 不会对空数组进行检测
-
map() 不会改变原始数组
const list = [
{ id: 1001, name: 'Alice', gender: 'female', score: 90 },
{ id: 1002, name: 'Max', gender: 'female', score: 95 },
{ id: 1003, name: 'John', gender: 'male', score: 100 },
]
-
已知一组id(数组),要从list中取出这些id的item组成的新数组
(使用includes和find方法都能够实现)
const res1 = list.filter(v => arr.includes(v.id))
const res2 = list.filter(v => arr.find(e => e === v.id))
- 获取数组中某个item中的指定属性值
const { id: aId, name: aName } = list[0]
console.log(aId); // 1001
console.log(aName); // Alice
- 将数组中的某个属性更改并返回新数组
const res = list.map(({ id, score }) => ({
id,
socre: score + 20
}))
- 在原有的基础上添加属性
const res = list.map(v => ({ ...v, status: 0 }))
- 将数组中的某个【属性以及属性名】更改并返回新数组
const res = list.map(({ id }) => ({ uid: id + 1 }));
- 获取数组中每个item的某属性值的合集数组
const res = list.map(v => v.id);
console.log(res); // [ 1001, 1002, 1003 ]
-
6.1 如果数组中不是对象item,而是一个个数组(即没有属性名,只有值),那么取值方式为
let list = [ ['Ekko', '18'], ['Jinx', '16'], ]; const res = list.map( ([name, age]) => age ); console.log(res) // [ '18', '16' ]