我使用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'}]
答案 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)
您想要的是另一个map
。 map
将始终按顺序获取给定长度的数组,并按相同顺序生成另一个具有相同长度的数组(在JS中)。因此,如果我们采用您的代码,然后添加:
options.map(o => o.toString).map(o => ({ value: o, label: o }))
你会得到你的对象的。