如何有效地建立这个字符串?

时间:2016-12-10 12:27:26

标签: 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 * 4 + 1;

  placeholders.push(`(${base}, ${base + 1}, ${base + 2}, ${base + 3})`);
}

const result = placeholders.join(',');

有没有办法做到这一点a)更有效率,b)以更易读的方式?

2 个答案:

答案 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) ? ',' : ')';
}