javascript - 为每个用户划分数量
问题描述
如何按用户划分为每 4 个或总用户的剩余部分?
数量值 4 很好用,但 5 也没有余数...
如何在没有 if 块的情况下申请?在两次循环中。
var quantity = 5;
var limit = Math.ceil(quantity / 4)
var users = [...Array(limit).keys()];
for(var i = 0; i < users.length; i++)
{
if(i != users.length-1) // check is last
{
for(var r = 0; r < 4; r++)
{
console.log('index of user: ' +i + ' action index: ' + r);
}
} else { // of remainder (i no found solution in this block)
}
}
样本输出:
index of user: 0 action index: 0
index of user: 0 action index: 1
index of user: 0 action index: 2
index of user: 0 action index: 3
index of user: 1 action index: 4 (only this not real on code)
最后编辑:
如何在循环中应用 if 块?我想我们是循环的。
var quantity = 5; // max action
var limiter = 4; // per user action limit
var limit = Math.ceil(quantity/limiter);
var users = [...Array(limit).keys()];
users.forEach((user, i) => {
for(let j=0; j<limiter; j++) {
if(i*limiter + j >= quantity) // make it loop
break;
console.log(`index of user ${i} action index: ${i*limiter + j}`)
}
});
解决方案
在回顾了这个之后,我认为最好的办法是单独存储动作编号,然后使用索引来获取它的倍数。我无法从您提供的内容中判断4
in 限制是否与操作数量有关,但如果是,您可以简单地将变量替换为它的位置。
var quantity = 5;
var limit = Math.ceil(quantity/4);
var users = [...Array(limit).keys()];
var actions = 4;
users.forEach((user, i) => {
for(let j=0; j<actions; j++) {
console.log(`index of user ${i} action index: ${i*actions + j}`)
}
});
推荐阅读
- android - 无法识别 (desugared) java.time.LocalDate 的 Moshi JsonAdapter
- octave - 使用多项式的匿名函数
- c++ - 标准::向量
与不同类型的配对 - oracle - 使用oracle闪回查询获取增量记录好不好?
- javascript - 向数组内的对象发出 post/put 请求
- mysql - 使用时区信息在表中插入数据
- mysql - 这个 sql CREATE TABLE 命令有什么问题?
- python - 如何使用 win32com 自动化现有的发布者文件 (.pub)?
- javascript - 如何将表单更改为 Content-Type:application / json
- python - 为什么我无法打开/读取从 Python 调用的 C 扩展名中的 txt 文件?