JavaScript中如何根据字典映射替换数组中的ISO代码元素
JavaScript 数组按对象映射替换元素实现方法
首先修正示例代码中存在的两处语法问题:
- 原
isoCodes数组里的AGO,'AGO'缺少右单引号,正确写法为'AGO','AGO' - 预期输出里的
isoCodes - [为笔误,应为赋值符号isoCodes = [
实现代码
最简便的方式是使用数组原生的map()方法遍历元素,直接读取映射对象的对应值完成替换:
var iso_map = {'AFG':'AF','ALB':'AL','DZA':'DZ','ASM':'AS','AND':'AD','AGO':'AO','AIA':'AI','ATA':'AQ','ATG':'AG'} // 修正语法后的原数组 var isoCodes = ['AFG','AFG','AFG','AGO','AGO','AFG','AFG','AND','AGO'] // 执行映射替换 isoCodes = isoCodes.map(code => iso_map[code]) console.log(isoCodes) // 输出结果:['AF','AF','AF','AO','AO','AF','AF','AD','AO']
如果需要兼容数组中存在不在映射表内的编码的场景,可以加兜底逻辑,找不到映射值时保留原始值:
isoCodes = isoCodes.map(code => iso_map[code] ?? code)
内容的提问来源于stack exchange,提问作者VJ D
相关产品推荐
相关产品推荐

