使用.map()映射含空格字段名的JSON对象时遇问题求助
解决带空格字段名的对象属性映射问题
嘿,我懂你碰到的这个小麻烦——处理来自CSV的带空格字段名确实容易踩语法坑!你之前的错误出在多余的点号上:el.['Application Reference']这种写法是不对的,点语法和方括号语法不能混着用。
正确的基础写法:直接使用方括号访问
当对象的属性名包含空格、特殊字符,或者不是有效的JavaScript标识符时,必须用方括号语法来访问,不需要前面的点。修正后的代码应该是这样:
$scope.dataList = results.data.map(el => ({ IdApplication: el['Application Reference'], AccNo: el.AccountNumber }))
更简洁的ES6解构写法
如果你的环境支持ES6+,还可以用对象解构结合重命名的方式,让代码更清爽直观:
$scope.dataList = results.data.map(({ 'Application Reference': IdApplication, AccountNumber: AccNo }) => ({ IdApplication, AccNo }))
这种写法直接在解构环节就把带空格的源字段重命名成你需要的目标字段名,然后返回对应的对象,逻辑链条更清晰。
总结一下:点语法只适用于符合标识符规则的属性名(无空格、不以数字开头、不含特殊字符等),带空格的属性名必须用方括号语法来访问哦!
内容的提问来源于stack exchange,提问作者Vereonix
相关产品推荐
相关产品推荐

