var data = [
{
_id: '6d2847090a6a1b',
user_id: '580da5653bd3cc5802f6c37c',
name: 'aaaa',
sum: 250
},
{
_id: '75f36d2847090a6a36580871',
user_id: '3bd3cc5802f6c37c580da565',
name: 'bbbb',
sum :30
},
{
_id: '6a3087184367090a6a3e58fd284',
user_id: '2f63bc580c37c580da565d3c',
name: 'ccc',
sum :100
}
];
var giftedObject = [];
data.forEach(function(userSummary){
userSummary.numberOfGifted = Math.floor(userSummary.sum / 100);
for(var i = 0; i < userSummary.numberOfGifted; i++){
giftedObject.push({
user_id: userSummary.user_id,
name: userSummary.name,
gifted_point: 1,
active: true
});
}
});
var result = {giftedObject: giftedObject};
console.log(result);
&#13;
以上是我的代码。当用户达到100分时,giftedObjectobject将创建。
如果用户达到100点,那么一个对象将创建
如果用户达到200点,那么两个对象将创建
创建对象后,我们需要从数据中减少有限值
预期结果:
有天赋的对象结果:
{
active:true
user_id: '580da5653bd3cc5802f6c37c',
gifted_point: 1
name: 'aaaa',
},
{
active:true
user_id: '580da5653bd3cc5802f6c37c',
gifted_point: 1
name: 'aaaa',
},
{
active:true
user_id: '2f63bc580c37c580da565d3c',
gifted_point: 1
name: 'ccc',
}
最终数据结果
{
_id: '6d2847090a6a1b',
user_id: '580da5653bd3cc5802f6c37c',
name: 'aaaa',
sum: 248
},
{
_id: '75f36d2847090a6a36580871',
user_id: '3bd3cc5802f6c37c580da565',
name: 'bbbb',
sum :30
},
{
_id: '6a3087184367090a6a3e58fd284',
user_id: '2f63bc580c37c580da565d3c',
name: 'ccc',
sum :99
}
答案 0 :(得分:2)
您可以从总和中减去gifted_points
。
var data = [{ _id: '6d2847090a6a1b', user_id: '580da5653bd3cc5802f6c37c', name: 'aaaa', sum: 250 }, { _id: '75f36d2847090a6a36580871', user_id: '3bd3cc5802f6c37c580da565', name: 'bbbb', sum: 30 }, { _id: '6a3087184367090a6a3e58fd284', user_id: '2f63bc580c37c580da565d3c', name: 'ccc', sum: 100 }],
giftedObject = [];
data.forEach(function (userSummary) {
var i,
gifted_point = Math.floor(userSummary.sum / 100);
userSummary.sum -= gifted_point;
for (i = 0; i < gifted_point; i++) {
giftedObject.push({
user_id: userSummary.user_id,
name: userSummary.name,
gifted_point: 1,
active: true
});
}
});
result = { giftedObject: giftedObject };
console.log(data);
console.log(result);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
答案 1 :(得分:0)
如何减少for循环中的和?
for(var i = 0; i < userSummary.numberOfGifted; i++){
giftedObject.push({
user_id: userSummary.user_id,
name: userSummary.name,
gifted_point: 1,
active: true
});
userSummary.sum -= 1; // <--- add this line
}