当前位置: 首页 > news >正文

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对象,无需改动逻辑代码,可读性远远高于多层嵌套的条件

http://www.jsqmd.com/news/817896/

相关文章:

  • 2026长垣市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • VSCode + TypeScript:一站式配置@路径智能提示与模块解析,告别‘Cannot find module’
  • 小红书禁止下载怎么办?2026年实测5大保存方法+最强工具评测 - 科技热点发布
  • 数据库分片实战:从理论到ShardingSphere落地
  • 1958-2024年乡镇的逐月土壤湿度数据
  • MSI-X中断机制深度解析:从硬件原理到Linux驱动实战与性能调优
  • 基于MCP协议构建AI与Docker的智能运维桥梁
  • 2026招远市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • 工业级OTP语音芯片在仿生驱鸟器中的选型与应用实践
  • 为Python数据分析脚本集成Taotoken实现智能文本摘要与分类
  • Claude 3 Opus vs GPT-4 Turbo vs Gemini 1.5 Pro(2024Q2真实负载压测实录)
  • Arduino与CircuitPython驱动3.5寸TFT触摸屏:SPI通信、图形显示与触摸交互全解析
  • Cadence新手避坑指南:用Padstack Editor搞定0402电阻和STM32的贴片焊盘(附命名规范)
  • Redis分布式锁进阶第五十一篇
  • 别再只用STM32了!手把手教你用STM32F4+FPGA EP2C8搭建低成本多轴运动控制器(附S形加减速算法避坑)
  • 2026十堰市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • 2026昭通市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • Unity放置经营模板深度分析:资源、建筑与离线收益如何实现?
  • LangGraph、OpenClaw、Hermes大比拼:Agent开发三路线,一次看懂!
  • 集合进阶(Collections Set List)
  • 2026沅江市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • LLM安全攻防实战:从提示注入到越狱攻击的防御体系构建
  • 虚拟机网络排查实战:宿主机和Ubuntu虚拟机桥接后互相ping不通?看这篇就够了
  • 新手入门,用外卖系统吃透Tomcat与Java Web全流程
  • 2026石家庄市黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐及联系方式_转自TXT - 盛世金银回收
  • NDS中文游戏资源汇总 中文游戏全集+NDS金手指+NDS模拟器
  • 医学图像自监督学习:MIRAM架构解决乳腺病变诊断难题
  • Kubernetes部署实践:从入门到生产级配置
  • 2026南京GEO优化乱象频发:反向甄别优劣+数据化避坑指南(FAQ) - 小艾信息发布
  • 基于Dify与微信机器人构建AI情感陪伴助手:从部署到Prompt工程实战