0
我想分配一個分數給每個用戶提交的帖子,因爲我從我的mongo數據庫中檢索它。我經歷了整個過程,並在我的新的posts對象數組中成功添加了'score'屬性。現在,我想根據該分數對帖子進行排序。我試圖使用一個簡單的比較函數,但它似乎我的代碼甚至沒有擊中這個函數。爲什麼我的代碼在我的map函數之後跳過我的排序函數?
我沒有收到錯誤或任何打印到控制檯。我得到的是我的帖子對象在分配屬性的數組中。
爲什麼我的代碼跳過這種排序功能?
預先感謝您。
postDB.connect
.then(db => db.collection("posts").find().forEach(function(posts) {
var postsArr = [];
postsArr.push(posts);
function generateScore(postWithoutScore) {
var timeSince = (((Date.now()/1000) - postWithoutScore.e) * 0.000277778);
var hh = ((postWithoutScore.upvote - 1)/Math.pow(timeSince + 2, 1.8)).toFixed(2);
return hh;
}
var postsWithScore = postsArr.map(function(post) {
// console.log(post);
return Object.assign({}, post, {
score: generateScore(post)
})
});
postsWithScore.sort(function (a, b){
console.log(b);
console.log(a);
return b[i].score - a[i].score;
});
console.log(postsWithScore);
})
.then(posts => {
console.log(posts);
res.render("projects", {
posts: posts
})
})
.catch(next))
});
你在'console'中遇到錯誤嗎?看起來像'我'將是未定義的。 –
'我'沒有在排序回調中定義。您的控制檯日誌應該建議使用'a.score'和'b.score' – charlietfl
我沒有從功能中得到任何東西......無所謂我放入什麼東西,沒有打印出來。沒有錯誤。我認爲它沒有被擊中。 –