Javascript 如何有效地建立这个字符串?
我有一个可以被4整除的数字,例如20。现在我需要创建一个如下所示的字符串:Javascript 如何有效地建立这个字符串?,javascript,node.js,Javascript,Node.js,我有一个可以被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
(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(',');
const占位符=[];
for(设i=0;i
有没有办法做到这一点a)效率更高,b)可读性更强?var results=[];
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(", ");
对于(VarI=1;iVarResults=[];
对于(var i=1;i刚刚尝试过。不知道是否有效
res = '(';
for (i = 1; i <= 20; i++) {
var mod = i % 4;
(mod == 1 && i != 1) ? res += ',(' : '';
res += i;
res += (mod != 0) ? ',' : ')';
}
res='(';
对于(i=1;i刚刚尝试过。不知道是否有效
res = '(';
for (i = 1; i <= 20; i++) {
var mod = i % 4;
(mod == 1 && i != 1) ? res += ',(' : '';
res += i;
res += (mod != 0) ? ',' : ')';
}
res='(';
对于(i=1;i IMHO this bound on.IMHO this bound on.+1,用于计算(
和)的智能方法
与三元运算符的串联。我删除了我的答案,因为你的答案更好。不过,如果你将4
作为生成此字符串的函数的参数,那就太酷了-我意识到这不是OP问题的要求:)还有,为什么不试试这个:;)@RobinMackenzie我会同意的,但这个答案比我做得更好。呃,你的条件预加/附加括号是一种非常不同的方法,因此可能确实有好处。例如,数组变大,元素变小,因此字符串缓冲区可能会更快。@Bergi发现它可能是一个E我的代码中有错误。两者都使用事件.长度
,但我假设它是20
,而实际上它是5
。这个错误意味着在测试OP的代码时会重复四次。+1是计算的明智方法(
和)
与三元运算符的串联。我删除了我的答案,因为你的答案更好。不过,如果你将4
作为生成此字符串的函数的参数,那就太酷了-我意识到这不是OP问题的要求:)还有,为什么不试试这个:;)@RobinMackenzie我会同意的,但这个答案比我做得更好。呃,你的条件预加/附加括号是一种非常不同的方法,因此可能确实有好处。例如,数组变大,元素变小,因此字符串缓冲区可能会更快。@Bergi发现它可能是一个E我的代码中有错误。两者都使用事件.length
,但我假设它是20
,而实际上是5
。这个错误意味着在测试OP的代码时,会重复四倍。