我有一个可以被4整除的数字,例如20.现在我需要创建一个如下所示的字符串:
(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16), (17, 18, 19, 20)
所以,从1到20的所有数字,以4个包装分组,用括号括起来,一切用逗号分隔。
我目前的做法如下:
const placeholders = [];
for (let i = 0; i < events.length; i++) {
const base = i * 4 + 1;
placeholders.push(`(${base}, ${base + 1}, ${base + 2}, ${base + 3})`);
}
const result = placeholders.join(',');
有没有办法做到这一点a)更有效率,b)以更易读的方式?
答案 0 :(得分:3)
var results = [];
for(var i = 1; i <= events.length * 4; i++){
var m = i % 4;
results.push((m==1 ? "(" : "") + i + (m==0 ? ")" : ""));
}
results = results.join(", ");
更具可读性?可能不是。更高效?它们大致相同。
最好的收获可能是您可以更改循环,使其从1
开始。
答案 1 :(得分:0)
刚试过。不知道效率与否。
res = '(';
for (i = 1; i <= 20; i++) {
var mod = i % 4;
(mod == 1 && i != 1) ? res += ',(' : '';
res += i;
res += (mod != 0) ? ',' : ')';
}