【发布时间】:2016-03-29 16:59:30
【问题描述】:
我正在使用 NodeJS 和 Mongoose。我从数据库中得到了一组数组(我们称之为results[][])。
我只想测试每个数组中包含的对象是否具有 game_id 属性(随机正整数)。
我像往常一样尝试了一个简单的条件:
for (i = 0; i < results.length; i += 1) {
if(results[i][0].hasOwnProperty('game_id')) {
console.log('OK ?');
}
}
但我从未通过条件...这很奇怪,因为如果我转储对象,我会看到 game_id 属性。
所以我尝试了这个:
for (i = 0; i < results.length; i += 1) {
if(results[i][0].hasOwnProperty('game_id')) {
console.log('[' + i + '] Test 1: ' + results[i][0].game_id);
}
if(results[i][0].game_id) {
console.log('[' + i + '] Test 2: ' + results[i][0].game_id);
}
}
得到:
[0] Test 2: 123
[1] Test 2: 456
[2] Test 2: 789
[3] Test 2: 1011
我不明白...
当results[i][0].game_id 为真时,为什么results[i][0].hasOwnProperty('game_id') 返回假?那里发生了什么?
【问题讨论】:
-
你的对象有继承吗?你能用一个简单的小提琴重现这个问题吗?
-
在此处添加结果 JSON。
-
@Jamiec 不,我不能因为猫鼬。我在这里发现了同样的问题stackoverflow.com/questions/30923378/…
标签: javascript properties