我是新来的。我需要支持我用于Googlesheets的代码。
背景:
我希望在A栏中创建1到12并重复一遍又一遍;像这样:1,2,3,[...],12,1,2,[...],12,等等。
代码:
我已经编写了这段代码,但我不确定我哪里出错了。也不确定如何在每次12后重复。帮助将不胜感激。
#include <vector>
template <typename T>
std::vector<T> flatten(const std::vector<std::vector<T>> & vec) {
std::vector<T> result;
for (const auto & v : vec)
result.insert(result.end(), v.begin(), v.end());
return result;
}
答案 0 :(得分:1)
将它想象成一个时钟,其值增加直到达到模数,此时它们开始“循环”。您需要打印i % 12
的值,但要进行修改,因为它不是零索引,因此更像((i - 1) % 12) + 1
。
for (var i = 1; i < 36; i++) {
console.log(i, ((i - 1) % 12) + 1);
}
结果:
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 1
14 2
15 3
16 4
17 5
18 6
19 7
20 8
21 9
22 10
23 11
24 12
25 1
26 2
27 3
// etc etc
答案 1 :(得分:0)
使用modulo将有助于从1到12获取数字。
基于Google recomendations,您可以对代码进行的一项更改是在批处理操作上更新spreadhseet上的数据。 因此,您可以逐个更改每个单元格,而不是逐个更改每个单元格。
示例:
function addValuesToRows() {
var range = SpreadsheetApp.getActive().getActiveSheet()
.getRange(1, 1, 100);
var numRows = range.getNumRows();
var values = range.getValues();
for (var i = 0; i < numRows; i++) {
values[i][0] = (i % 12) + 1;
}
range.setValues(values); //Setting the value to the whole range
}