Javascript-如何创建对象的数组,其中对象的键都具有相同的值

时间:2018-07-23 01:44:40

标签: javascript arrays momentjs

我使用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'}]

2 个答案:

答案 0 :(得分:5)

只需将.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>

答案 1 :(得分:0)

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

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

你会得到你的对象的。