在for循环和手动下创建对象键

时间:2017-05-12 21:12:36

标签: javascript for-loop

基本上我使用for循环创建对象的键(年份)。 但是,我想让对象的第一个键是我手动创建的collapse键。

然而,它最终被推到最后。

我有以下代码:

initial

它像这样发送:

const VEHICLE_YEARS = () => {
    const vehicleYears = {}
    vehicleYears['initial'] = 'Choose One'
    const startYear = 2013
    const endYear = new Date().getFullYear()
    for (let year = startYear; year <= endYear; year++) {
        vehicleYears[year] = year
    }

    return vehicleYears
}
VEHICLE_YEARS()

1 个答案:

答案 0 :(得分:1)

简单对象无法提供您想要的内容。你需要Map

你需要这个:

const map = new Map();
map.set('initial', 'Select one');
map.set('2013', '2013');
map.set('2014', '2014');
map.set('2015', '2015');
map.set('2016', '2016');
map.set('2017', '2017');
// etc

要进行迭代,您可以使用for..of

for (const [key, value] of map) {
  console.log(key, value)
}

// the result
initial Select one
2013 2013
2014 2014
2015 2015
2016 2016
2017 2017

如果您使用for of迭代地图,则保证您在将它们添加到地图时按顺序排列。来自docs:

  

Map对象按插入顺序迭代其元素 - for循环返回每个迭代的[key,value]数组。

此外,要遍历条目Map.prototype.forEach

map.forEach((val, key) => console.log(key ,val))