我是新来的js坚持了重构:定期对循环到angular.forEach
for (var i = vm.notActiveOffers.length - 1; i >= 0; i--) {
for (var j = 0; j < vm.activeOffers.length; j++) {
if (vm.notActiveOffers[i] && (vm.notActiveOffers[i].offerId === vm.activeOffers[j].offerId)) {
vm.notActiveOffers.splice(i, 1);
}
}
}
重构后:
angular.forEach(vm.notActiveOffers, function(notActiveOffer) {
angular.forEach(vm.activeOffers, function(activeOffer) {
if(notActiveOffer && (notActiveOffer.offerId === activeOffer.offerId)) {
vm.notActiveOffers.splice(_.indexOf(vm.notActiveOffers, notActiveOffer), 1);
}
})
});
如预期的重构版本不起作用我无法弄清楚为什么。
你可以给我们提供'vm.notActiveOffers'内容吗?预期的结果是什么? – Mistalis
@Bavi Gurunath它不会工作,因为你试图找到一个数组内的对象的位置。你需要为此编写自己的自定义函数。 – NightsWatch
那只是重构缓慢 – YOU