Ich habe eine while-Schleife, die eine Bedingung zum Filtern von Daten aus mongodb entspricht. Allerdings, wenn ich den Rückruf verwende, erhalte ich nur ein Ergebnis an die console.log
. Wenn ich console.log innerhalb der while-Schleife schreibe, sollte ich drei Einträge erhalten. Warum macht nur ein Stück Daten den Rückruf?While-Schleife und Callback geben unterschiedliche Ergebnisse zurück
while(i--) {
if (0 >= [friday, saturday, sunday].indexOf(results[i].selectedDate)) {
theWeekend = results[i];
console.log(theWeekend); //returns three results (correct)
}
}
callback(err, theWeekend)
console.log(theWeekend); //returns one results (incorrect)
Korrekte Daten
{ _id: 56fffb5ceb76276c8f39e3f3,
url: 'http://londonist.com/2015/11/where-to-eat-and-drink-in-balham',
title: 'Where To Eat And Drink In... Balham | Londonist',
selectedDate: Fri Apr 01 2016 01:00:00 GMT+0100 (BST),
__v: 0 }
{ _id: 56fffb8eeb76276c8f39e3f5,
url: 'https://news.ycombinator.com/item?id=11404770',
title: 'The Trouble with CloudFlare | Hacker News',
selectedDate: Sun Apr 03 2016 01:00:00 GMT+0100 (BST),
__v: 0 }
{ _id: 56fffb6ceb76276c8f39e3f4,
url: 'http://wellnessmama.com/13700/benefits-coconut-oil-pets/',
title: 'Benefits of Coconut Oil for Pets - Wellness Mama',
selectedDate: Sat Apr 02 2016 01:00:00 GMT+0100 (BST),
__v: 0 }
Falsche Daten
{ _id: 56fffb6ceb76276c8f39e3f4,
url: 'http://wellnessmama.com/13700/benefits-coconut-oil-pets/',
title: 'Benefits of Coconut Oil for Pets - Wellness Mama',
selectedDate: Sat Apr 02 2016 01:00:00 GMT+0100 (BST),
__v: 0 }
[ 'Array.prototype .filter() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenz/Global_Objects/Array/Filter) – Andreas