【问题标题】:delete previous object fields and make new fields in array of objects in javascript删除以前的对象字段并在javascript中的对象数组中创建新字段
【发布时间】:2021-11-24 22:55:15
【问题描述】:

我在 javascript 中有一个对象列表,其中有一个包含 1 个字段的列表,它是 org_name,如下所示:

const list=[
{ org_name:"Test1"},
{ org_name:"Test2"}
]

现在我想将此列表更改为:

const list=[
{ text:"Test1",value:"Test1"},
{ text:"Test2",value:"Test2"}
]

我正在做的是:

list.map(el => ({ ...el, text: el.org_name, value: el.org_name }));

它不工作,任何线索将不胜感激。

【问题讨论】:

  • 分配给某物(列表是一个常量)并删除 ...el:const newList = list.map(({org_name})=> ({ text: org_name, value: org_name }));

标签: javascript list object


【解决方案1】:

Array.map 创建新数组。您想更新现有数组,因此循环遍历数组并更新对象键。

const list = [ { org_name: "Test1" }, { org_name: "Test2" } ];
list.forEach(el => {
  el.text = el.org_name;
  el.value = el.org_name;
  delete el.org_name;
});
console.log(list)

【讨论】:

    【解决方案2】:

    只需删除 ...el 部分,因为您不需要它。

    const list=[
      { org_name:"Test1"},
      { org_name:"Test2"}
    ];
    
    const out = list.map(el => {
      return { text: el.org_name, value: el.org_name };
    });
    
    console.log(out);

    【讨论】:

    • 值得回答吗?
    猜你喜欢
    • 2019-02-22
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多