在第一次迭代时从范围生成对象get null

时间:2018-01-28 12:53:35

标签: javascript

我的循环有什么问题?第一次迭代是否为空?

generateRewardOptions = () => {
        let options = []
        const max = 20

        for(let i = 1; i <= max; i++){
            options[i] = {
                key: i,
                value: i,
                text: i
            }
        }

        return options
    }

console.log(JSON.stringify(generateRewardOptions()));

https://jsbin.com/cupelanotu/edit?html,js,console,output

2 个答案:

答案 0 :(得分:1)

问题是你应该从1开始循环,从0开始。

将for更改为0并排除max应该可以解决问题:

for(let i = 0; i < max; i++){

JavaScript数组 0

答案 1 :(得分:1)

除了smnbbrv建议的另一个选择是在循环中使用push

for(let i = 1; i <= max; i++) {
    options.push({
        key: i,
        value: i,
        text: i
    });
}

然后你不必从i=0开始。