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