如何检查数字的值?
for(var index in this.choicesDM) {
if(index == 0) {
this.currentChoice = this.choicesDM[index]
}
}
我在问题的标题中收到了错误,如上所述。我还试图明确定义索引的类型。但是没有用。 找到了这个link,但没有得到解决方案。
答案 0 :(得分:1)
这是因为==和其他相关比较运算符对具有相同类型或类型的1操作数的操作数进行操作应该是其他操作数的子类型。但在你的情况下,0是整数,“index”是字符串。因此错误。
答案 1 :(得分:1)
在JavaScript(以及TypeScript)中,in
运算符返回一个字符串。这是因为for in
循环遍历对象的键,这些键是JavaScript / TypeScript中的字符串。因此,当您比较index == 0
时,index
是一个字符串,而0
是一个整数,因此就是错误。
注意我之前说过的,for in
枚举对象的属性。对于数组,这也包括length
属性之类的内容,因此使用for in
循环数组通常是个坏主意。您可能想要的是for of
循环,其中of
为您提供数组中每个对象的值。