如何搜索对象中作为键名的特殊图标字符并解决无效字符报错
特殊图标字符作为对象键的搜索解决方案
报错的核心原因是特殊Unicode图标不属于JavaScript合法标识符,裸写键名、用点语法访问时都会被JS引擎判定为无效字符,按以下步骤处理即可:
- 第一步:修正对象定义写法
特殊字符作为对象键时必须用引号包裹,否则定义阶段就会触发语法错误:const icons = { '': {old: '', new: '替换后的目标图标'}, '其他图标字符': {old: 'xxx', new: 'xxx'} } - 第二步:使用方括号语法访问/搜索键
不要使用点语法,将目标图标字符用引号包裹后传入方括号即可正常访问:// 直接访问已知图标键 const targetIcon = '' const config = icons[targetIcon] // 遍历搜索匹配键的示例 const matchedKeys = Object.keys(icons).filter(key => key === targetIcon) - 第三步:字符编码兼容处理
部分特殊图标存在Unicode多字节、显示值和实际编码不一致的情况,可通过编码匹配避免搜不到的问题:// 先打印所有键的16进制编码确认目标值 Object.keys(icons).forEach(key => { console.log(`字符:${key},编码:${key.codePointAt(0).toString(16)}`) }) // 用编码精准搜索 const targetCode = 0xf2d5 // 替换为打印得到的目标图标实际编码 const matchedConfig = Object.values(icons).find(item => item.old.codePointAt(0) === targetCode)
内容的提问来源于stack exchange,提问作者Asaad Mahmood
相关产品推荐
相关产品推荐

