TypeScript 对象显示所有已定义的值,但随后值返回为未定义

TypeScript object shows all values as defined but then values come back as undefined

我正在尝试使用 for 循环在 typeScript 中动态定义一个对象。

这是代码

        var n = 7 
        interface LooseObject {
            [key: string]: any
        }
        var boardValues: LooseObject = {}
        for (var i = 0; i <= n; i++){
            for(var j = 0; j <= n; j++){
                var boardIndex = 8*(n-i)+j
                boardValues[`n${boardIndex}`] = `n${boardIndex}`
                console.log("generating boardValues",boardValues[`n${boardIndex}`]) //outputs the expected result e.g. n15
            }
        }

Here is a gif showing the output

虽然 运行 循环 console.log 给出了预期的输出(例如 n7)。但是,当我将创建的 boardValues 对象输出到控制台时,只定义了 n16 到 n47。更奇怪的是 chrome 显示正确定义的值,直到我展开对象以查看所有值然后将它们显示为未定义。

我做错了什么? (我是 typeScript 的新手,不擅长编程,所以对不当的做法深表歉意)

我认为您的代码工作正常,只是 boardValues 属性未排序(例如,n50 可能是第一个显示的键,n7 可能在中间);

要查看所有设置的键,请尝试:

console.log(Object.keys(boardValues).sort((a,b)=>Number(a.slice(1))-Number(b.slice(1))))