JavaScript进阶_01_映射的方法
1.数组map( )方法(最常用的数组映射)
Arrary.protype.map( ) 是数组的内置方法,用于对数组中的每个元素执行回调函数,返回一个由回调函数结果组成的新数组(不改变原数组)
核心作用:将数组中的元素按规则 “映射” 为新元素
语法:
const newArray = originalArray.map((currentValue, index, array) => { // 处理逻辑,返回映射后的值 return mappedValue; });参数对应关系:currentValue是当前正在处理的元素,index是当前元素的索引,Array是新数组,包含每个元素映射后的结果
// 示例1:将数字数组映射为其平方值 const numbers = [1, 2, 3, 4]; const squares = numbers.map(num => num * num); // squares 结果:[1, 4, 9, 16] // 示例2:将对象数组映射为指定属性的数组 const users = [ { name: 'Alice', age: 20 }, { name: 'Bob', age: 25 } ]; const names = users.map(user => user.name); // names 结果:['Alice', 'Bob'] // 示例3:结合条件映射(根据状态返回中文描述) const rows = [ { status: 'YTY' }, { status: 'BJZ' }, { status: 'FB' } ]; const statusTexts = rows.map(row => { if (row.status === 'YTY') return '编辑中'; if (row.status === 'BJZ') return '已保存'; return '已发布'; }); // statusTexts 结果:['编辑中', '已保存', '已发布']2.对象映射表(键 - 值对映射,替代多条件判断)
当需要根据一个 “键” 快速查找对应的 “值”(如状态码、类型转换等),可以用普通对象作为"映射表",比 if-else 或嵌套三目更简洁、易维护。
核心逻辑:对象的"是需要判断的条件","值"是映射后的结果,通过对象[键]直接获取结果
示例:
// 场景:将状态码映射为中文描述(替代嵌套三目) const statusMap = { 'YTY': '编辑中', 'BJZ': '已保存', 'FB': '已发布', default: '未知状态' // 默认值 }; // 映射逻辑:根据row.status取对应值,无则用默认 const getStatusText = (status) => { return statusMap[status] || statusMap.default; }; // 使用 console.log(getStatusText('YTY')); // '编辑中' console.log(getStatusText('XXX')); // '未知状态'对象映射表优势优势:第一个是新增/修改映射关系的时,只需要修改statusMap对象,无需改动逻辑代码,可读性远远高于多层嵌套的条件
