Javascript 前额角
我有一件物品,里面有很多物品。 此对象由lotId索引Javascript 前额角,javascript,angularjs,foreach,Javascript,Angularjs,Foreach,我有一件物品,里面有很多物品。 此对象由lotId索引 var lots = { 800: { lotId: 800, ... }, 801: { lotId:801, ... } } 当我用angular.forEach在对象中循环时,我在控制台中记录每个批次的lotId angular.forEach(db.lots, function (lot) { console.log(lot.l
var lots = {
800: {
lotId: 800,
...
},
801: {
lotId:801,
...
}
}
当我用angular.forEach在对象中循环时,我在控制台中记录每个批次的lotId
angular.forEach(db.lots, function (lot) {
console.log(lot.lotId);
})
console.log('forEach finished');
正如我们所看到的,批次集合长度为821,对象中的最后一个批次为lotId 1768
当此代码运行时,它只打印到lotId 820:
所以最后一个日志应该是1768,我不知道为什么它停在洛蒂德820(对我来说,这是一个很大的巧合,很多长度[821])
使用本机for in循环的另一种方法:
for (var lotId in db.lots) {
if (!db.lots.hasOwnProperty(lotId)) continue;
console.log(lotId);
}
console.log('forEach finished');
然后我们得到了我想要的结果:
注意事项:
- 我使用相同的angular.forEach方法处理相同但较小的批次集合(长度为768),效果良好
- 在lots集合中添加了大约100个lots,之后我使用的angular.forEach函数停止正常工作
- 控制台中没有错误
有什么想法吗?制作一个演示,复制问题。请注意,对象不像数组那样具有顺序。还有,
Object.keys(db.lots.length)
返回什么?听起来它不是打印批次id,而是打印对象键