:)
我正在迭代一个对象。出于调试目的,我正在尝试记录某个键被击中。出于某种原因,下面的if
语句永远不会评估为真。
for (let key in tiles) {
console.log(key)
if (tiles[key].autoload) {
app.loadWidget(key);
if (key === 'social') {
console.warn("Loading social widget"); //this never gets logged
}
}
}
以下是第一个console.log
的完整输出:
10:10:44.111 app.js:357 nearby 10:10:44.112 app.js:357 social //<--- WTF 10:10:44.113 app.js:357 clock 10:10:44.114 app.js:357 calendar 10:10:44.117 app.js:357 weather 10:10:44.119 app.js:357 addwidget 10:10:44.120 app.js:357 settings 10:10:44.121 app.js:357 account 10:10:44.122 app.js:357 debug
我尝试强制它以确保使用if ('' + key === 'social')
不是类型问题。我也试过了==
。它没有帮助。
这是对象定义:
let tiles = {
'store': {
name: 'store',
autoload: true,
loadOrder: 1,
/* other attributes */
isLoaded: false,
},
'social': {
name: 'social',
autoload: false,
loadOrder: 1,
/* other attributes */
isLoaded: false,
},
/* etc, etc */
}
我确信这很简单,我忽略了。 为什么key
永远不会等于'social'
?
let tiles = {
'store': {
name: 'store',
autoload: true,
loadOrder: 1,
/* other attributes */
isLoaded: false,
},
'social': {
name: 'social',
autoload: false,
loadOrder: 1,
/* other attributes */
isLoaded: false,
},
/* etc, etc */
}
for (let key in tiles) {
console.log(key)
if (tiles[key].autoload) {
//app.loadWidget(key);
if ('' + key === 'social') {
console.warn("Loading social widget");
}
}
}