微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决TypeScript 对象显示所有已定义的值,但随后返回的值未定义

我正在尝试使用 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))))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。