如何高效将带编号的person字段映射为独立对象数组?
批量处理对象字段的优化方案
需求说明
需要将输入数组:
[ { "person_1": "jim", "person_2": "bob" } ]
转换为目标结构:
[ { "people": [ { "person": "jim" }, { "person": "bob" } ] } ]
优化实现代码
const ogArray = [{ "person_1": "jim", "person_2": "bob" }] const newArray = ogArray.map(item => { // 筛选并转换person_*格式的字段 const people = Object.entries(item) .filter(([key]) => key.startsWith('person_')) .map(([_, value]) => ({ person: value })) return { people } }) console.log(newArray);
代码说明
- 用
Object.entries()将对象拆解为键值对数组,统一遍历处理所有字段 - 通过
filter()筛选出键以person_开头的项,替代手动逐个选取字段的方式 - 再用
map()将筛选后的每个值转换为{person: value}的目标结构 - 新增
person_3这类同格式字段时,代码无需修改,完全符合DRY原则
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

