У меня есть этот вызов API, где я хочу вернуть 3 самых высоких и 3 самых низких "totalScore" в моем объекте.
это моя функция
app.get('/getTopThree', (req, res) => {
let store = Store.find({}, 'name _id', function (error, response) {
}).sort({_id:-1})
store.then(stores => {
let output = {}
function delay() {
return new Promise(function (resolve, reject) {
stores.map(async store => {
var j = 0
await Rate.find({
"storeId": store._id
},
'rate date', function(error, response) {
totalArray = [];
response.filter(function(el) {
totalArray.push(el.rate);
});
sumOfVotes = totalArray.reduce((a, b) => a + b, 0);
totalScore = Math.round(sumOfVotes / totalArray.length * 33.33);
var counts = {};
for (var i = 0; i < totalArray.length; i++) {
var num = totalArray[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
}
var finalStore = {
"totalScore": totalScore
}
output[j++] = finalStore;
})
})
setTimeout(function () {
resolve(store)
}, 1000)
})
}
delay().then(finalStore => {
console.log(finalStore)
console.log(output)
res.send({
"store": {
"name": finalStore,
"score": output
}
})
})
})
})
и это мой вывод
{
"store": {
"Klaregade": {
"name": "Klaregade",
"totalScore": 93
},
"Overgade": {
"name": "Overgade",
"totalScore": 67
}
}
}
Итак, я хочу зациклить этот объект и вернуть 3 самых высоких как
store: {"самый высокий": output.highest, "самый низкий": output.lowest "}
Может кто-нибудь помочь мне с этим, проблема в том, что каждое возвращаемое значение в моем объекте имеет уникальное имя в начале ("klaregade" и "overgade")
как мне зациклить их и взять самое высокое и самое низкое значение?
Заранее спасибо.