【发布时间】:2021-01-20 00:10:16
【问题描述】:
我想存储和显示所有(包括重复的)对象,但它只存储不同的(唯一)值。
好事是总计正在添加所有值包括重复出现
坏事是 indistinctresult 无法存储重复出现的对象
for循环也不起作用
if (req.isAuthenticated()) {
User.find({ _id: req.user._id }, function (err, cartitem) {
var noofcartitem = cartitem[0].cart_array.length;
product.find({ _id: cartitem[0].cart_array }, function (err, result) {
var total = 0;
var x;
var indistinctresult = []; ***//stores only distinct(Unique) values***
for (x in result) {
total += result[x].price;
indistinctresult.push(result[x]);
}
console.log(indistinctresult); **//expected to log all(including non unique) values**
res.render("cart", {
cart_array: noofcartitem,
total: total,
cartproduct: indistinctresult,
});
});
});
} else {
res.redirect("/login");
}
【问题讨论】:
-
这条线是做什么的:
for (x in result) { ... }?x在代码中的任何位置都没有赋值。 -
x 循环到结果中的项目数。
-
第一步,将
for (x in result)替换为for (let x=0; x<result.length; x++)然后告诉我们会发生什么 -
相同的结果先生,问题是 indistinctresult 只存储唯一值。
标签: javascript node.js arrays express mongoose