JavaScript中修改对象数组字段,删除原有字段生成text、value新结构
问题原因
Array.map()不会修改原数组,仅会返回处理后的新数组,你的代码没有接收返回值,自然看不到生效结果- 你使用了
...el展开原对象,会把原有的org_name字段保留到新对象中,最终得到的对象会同时存在3个字段,和预期的仅包含text、value的结构不符 - 隐含问题:你原数组用
const声明,如果你尝试直接给原list重新赋值,会触发常量不可修改的报错
解决方法
如果你不需要保留原org_name字段,直接构造新对象,用新变量接收结果即可:
const list = [ { org_name:"Test1"}, { org_name:"Test2"} ] // 声明新变量存储处理后的数组 const convertedList = list.map(el => ({ text: el.org_name, value: el.org_name }))
如果你需要覆盖原数组,先把原数组的声明关键字改为let:
let list = [ { org_name:"Test1"}, { org_name:"Test2"} ] list = list.map(el => ({ text: el.org_name, value: el.org_name }))
内容的提问来源于stack exchange,提问作者rudeTool
相关产品推荐
相关产品推荐

