【问题标题】:How to add object name into array javascript如何将对象名称添加到数组javascript中
【发布时间】:2020-11-08 10:49:21
【问题描述】:

我想问一个简单的问题,如何使用 javascript 添加对象名称

我试过了

const data = ["1", "5", "3", "4"]
const obj = this.Tags.reduce((acc,e) => { acc[e] = e; return acc; }, {});

但是输出,我需要用字符串名称更改数字

{
  1: "1",
  3: "3",
  4: "4",
  5: "5"
}

我希望输出是这样的,如何在 javascript 中做到这一点?

{
  value: "1",
  value: "3",
  value: "4",
  value: "5"
}

谢谢

【问题讨论】:

  • 你想要json作为输出吗?如果那样的话,你不能有重复的键
  • 你用“JavaScript”问它——这是否意味着你有它用于另一种语言(也许是 Python?只是一个印象)?如果是这种情况,请考虑展示您要转换的内容。
  • 是的,我需要它作为 json 或字符串。
  • 需要使用 javascript 而不是 Pyton lang
  • 好吧,这只是一种印象,您试图将现有代码从另一种语言转换。为什么要以那种特定的、不存在的格式输出?实际存在的最接近的东西看起来像[{value:"1"},{value:"2"},...]

标签: javascript arrays


【解决方案1】:

我可以假设你想要这个:

let _ = '';
const data = ["1", "5", "3", "4"];
const obj = JSON.stringify(data.sort().reduce((acc, e) => {
    _ += '_';
    acc[`${_}value`] = e;
    return acc;
}, {}), null, 2).replace(/_/g, '');
console.log(obj);

【讨论】:

  • @sinzo 所以你想要一个字符串?
【解决方案2】:

你想要的输出只是一个条目,因为你不能有重复的键

{
  value: "5"
}

我假设你实际上想要一个对象数组,

const data = ["1", "5", "3", "4"];
const result = data.map(value => ({ value }));
console.log(result);

【讨论】:

    【解决方案3】:

    嗯,简而言之,你不能在一个对象中有重复的键,所以不能有你提到的确切输出(这里是另一个 thread 你可以阅读它)。这是一个如何动态插入键/值对的示例。只需将 value${i} 更改为您需要的密钥名称即可。

    const data = ["1", "5", "3", "4"]
    const obj = data.reduce((acc,e,i) => { 
      acc[`value${i}`] = e; 
      return acc; 
    }, {});
    
    console.log(obj)

    如果有必要将所有键命名为value,我建议改用对象数组(在我链接的线程中也提到过)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多