【问题标题】:Javascript - how to create an array of objects where the object's keys all have the same valueJavascript - 如何创建一个对象数组,其中对象的键都具有相同的值
【发布时间】:2018-12-30 10:12:03
【问题描述】:

我使用moment 创建了一个从当前年份到 1930 年的递减整数数组:

options = Array(moment().year() - 1929).fill().map((_, index) => moment().year() - index)

我正在尝试将 options 转换为对象数组,这样生成的数组就是这样的:

[{value: '2018', label: '2018'}, {value: '2017', label: '2017'}, ..., {value: '2', label: '2'}, {value: '1', label: '1'}]

【问题讨论】:

    标签: javascript arrays momentjs


    【解决方案1】:

    只需.map 将每个项目指向一个对象而不是单个数字:

    const options = Array(moment().year() - 1929)
      .fill()
      .map((_, index) => {
        const value = moment().year() - index;
        return { value, label: value };
      });
    console.log(options);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

    【讨论】:

      【解决方案2】:

      你想要的是另一个mapmap 将始终按顺序获取给定长度的数组,并以相同的顺序生成另一个相同长度的数组(在 JS 中)。因此,如果我们获取您的代码,然后添加:

      options.map(o => o.toString).map(o => ({ value: o, label: o }))

      你会得到你的对象。

      【讨论】:

        猜你喜欢
        • 2016-01-30
        • 2022-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多