【问题标题】:How would I use _.mapKey over this array of objects我将如何在这个对象数组上使用 _.mapKey
【发布时间】:2018-05-31 23:03:26
【问题描述】:

我有以下对象数组。我想将键“文本”更改为命名标签

[
  {id: 0, text: "blue"},

  {id: 1, text: "green"},

  {id: 2, text: "orange"},

  {id: 3, text: "yellow"}
]

“id”必须保持原样。

我可以使用 lodash 或 javascript。

【问题讨论】:

  • 你用过mapKey吗?还是地图?
  • 嗨@Isaac,我尝试做一个 forEach 并在里面 _.mapKey 但我得到一个未定义的响应

标签: javascript arrays object lodash


【解决方案1】:

您可以使用.map() 方法重命名对象数组中的键。

var data = [
  {id: 0, text: "blue"},

  {id: 1, text: "green"},

  {id: 2, text: "orange"},

  {id: 3, text: "yellow"}
]

data = data.map(el => {
  return {
    id: el.id,
    label: el.text
  }
})

console.log(data);

【讨论】:

    【解决方案2】:

    你可以使用 .map

    let arr=[
      {id: 0, text: "blue"},
    
      {id: 1, text: "green"},
    
      {id: 2, text: "orange"},
    
      {id: 3, text: "yellow"}
    ];
    
    let arr1=[];
    arr1=arr.map(a=>({id:a.id,label:a.text}));
    console.log(arr1);

    【讨论】:

      【解决方案3】:

      您可以使用函数forEach 和带有目标的数组

      这种替代方法会改变原始数组。

      let array = [{id: 0, text: "blue"},{id: 1, text: "green"}, {id: 2, text: "orange"},  {id: 3, text: "yellow"}],
          target = [['text', 'label'], ['ele', 'stack']];
      
      array.forEach(o => {      
        target.forEach(([src, dest]) => {
          if (o[src]) {
            Object.assign(o, {[dest]: o[src]});
            delete o[src];
          }
        });
      });
          
      console.log(array);
      .as-console-wrapper { max-height: 100% !important; top: 0; }

      【讨论】:

        猜你喜欢
        • 2017-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-07
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 2012-02-24
        相关资源
        最近更新 更多