我在我的代码中使用map
函数我想打开下面数组的Qdata但是在这里它说未定义可能是它在json数组内如果错了请帮我纠正这个!
我的数组结构就像这样
[ { _id: 201,
user_id: 141,
PAN: 1,
Qdata: 023444 } ]
这是地图的乐趣:
var data = array.map(function(p){
return p.Qdata
})
我的实际代码:
function getTotal(req, res, next) {
var array = [];
var array2 = {};
db.users.find(req.q).toArray(function(err, rest) {
rest.map(function(ids) {
array.push(ids._id);
})
var total = array.length;
for (var i = 0; i < array.length; i++) {
db.users.find(array[i]).toArray(function(err, users) {
if (err) return next(err);
});
db.consumer.aggregate([{
$unwind: "$votes"
}, {
$match: {
'consumer_id': mongoskin.helper.toObjectID(array[i])
}
}, {
$group: {
_id: "$votes.date",
"consumer_id": {
$first: "$consumer_id"
},
"vote": {
$sum: {
$cond: [{
'$gt': ['$votes.score', 0]
}, "$votes.score", 0]
}
}
}
}], function(err, sort_res) {
array2.push(sort_res);
total -= 1;
if (total <= 0) {
var user_obj = {};
for (var i = rest.length - 1; i >= 0; i--) {
var userDetails = rest[i];
user_obj[userDetails._id] = userDetails;
}
var aa=array2.map(function(p){
p.userDetails = obj[p.consumer_id];--------> here am not getting consumer_id
return p
})
res.send(aa)
}
})
}
})
}
答案 0 :(得分:0)
只想提出一些可能对你有用的要点。
所以为此我想推荐使用新版本的javascript ES6 它有很多简化的语法更改和新的更新
如果您使用任何不是从0开始的数字,输出将起作用,在这种情况下,您将获得所需的输出
var x =[ { _id: 201,
user_id: 141,
PAN: 1,
Qdata: 23444 } ]
var data = x.map(v => v.Qdata)
console.log(data) // 23444
但是,如果您使用任何从0开头的数字,就像您在问题中所发布的那样#02; 023444&#39;它被视为基数8(八进制),并将输出为10020,因为从0开始的整数在数学中没有意义。