JavaScript 如何使用map方法将字符串数组转换为指定格式的字典数组
实现方案
这个需求完全可以通过数组的map方法实现,map本身就是为遍历原数组、按规则生成新数组的场景设计的,完全匹配你的转换需求。
回调函数补全方式
你只需要在map的回调中,把每一个遍历到的元素el,封装成同时包含value、label两个属性的对象即可。
这里有一个高频踩坑点需要注意:
- 箭头函数如果要直接返回对象字面量,必须把返回的对象用小括号包裹
- 如果直接写成
el => { value: el, label: el }是无法正常返回对象的,JS会把对象的大括号识别为回调函数的函数体边界,内部的value: el会被解析为无效的标签语法,最终返回undefined
完整可运行代码
首先是你的原数组定义:
const periods = ["2021-03-31", "2021-02-28", "2021-01-31"]
补全后的map逻辑代码:
const periodsDictArray = periods.map(el => ({ value: el, label: el }))
代码执行完成后,得到的periodsDictArray结构和你预期的目标效果完全一致:
[ { value: "2021-03-31", label: "2021-03-31" }, { value: "2021-02-28", label: "2021-02-28" }, { value: "2021-01-31", label: "2021-01-31" } ]
内容的提问来源于stack exchange,提问作者K.I.
相关产品推荐
相关产品推荐

