Bootstrap

Array.map()方法 获取数组中处理后的内容

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 },
]
  1. 已知一组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))
  1. 获取数组中某个item中的指定属性值
const { id: aId, name: aName } = list[0]
console.log(aId); // 1001
console.log(aName); // Alice
  1. 将数组中的某个属性更改并返回新数组
const res = list.map(({ id, score }) => ({
  id,
  socre: score + 20
}))
  1. 在原有的基础上添加属性
const res = list.map(v => ({ ...v, status: 0 }))
  1. 将数组中的某个【属性以及属性名】更改并返回新数组
const res = list.map(({ id }) => ({ uid: id + 1 }));
  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' ]
    
;