Javascript 使用GAS重复打印每个数组值
我试了一整天,但都没用。我需要能够将数组中的每个值反复返回到google sheet,(n-1)次,数组长度为n。此array.length预计不一致,具体取决于用户通过google表单输入的内容 用户需要在google表单的文本字段中输入一些代码名,并用符号“| |”分隔每个代码名。每个代码名都必须是唯一的,但在执行其他流程之前,仍会进行验证检查以删除重复的代码名。然后重复返回google工作表中的行输出 例如,在数组中输入5个代码名=['Marvell'、'Xtortion'、'Duminalize'、'呼气'、'Xtortion']Javascript 使用GAS重复打印每个数组值,javascript,google-apps-script,Javascript,Google Apps Script,我试了一整天,但都没用。我需要能够将数组中的每个值反复返回到google sheet,(n-1)次,数组长度为n。此array.length预计不一致,具体取决于用户通过google表单输入的内容 用户需要在google表单的文本字段中输入一些代码名,并用符号“| |”分隔每个代码名。每个代码名都必须是唯一的,但在执行其他流程之前,仍会进行验证检查以删除重复的代码名。然后重复返回google工作表中的行输出 例如,在数组中输入5个代码名=['Marvell'、'Xtortion'、'Dumina
我的代码如下:-
//by Bjorn | https://stackoverflow.com/questions/881085/count-the-number-of-occurrences-of-a-character-in-a-string-in-javascript
var cname=sheet.getRange(2,1).getValue();
var code=cname.split("||");
var codename=[...new Set(code)]; //get unique values first
var count=cname.split("||").length - 1; // to get freq to repeat output of same value.
// ['Marvell','Xtortion','Ambiguous','Exhale']
// array.length is 4, output each value being returned to google sheet start from row 3 in col A should be 3 times (n-1)
var lrow=sheet.getLastRow();
for(var i=1;i<=count;i++){
for(var j=0;j<=count;j++){
sheet.getRange(lrow+1,1,i,1).setValue([j]);
var lrow=sheet.getLastRow();
}
}
}
比约恩https://stackoverflow.com/questions/881085/count-the-number-of-occurrences-of-a-character-in-a-string-in-javascript
var cname=sheet.getRange(2,1).getValue();
var code=cname.split(“| |”);
var codename=[…新集合(代码)]//首先获取唯一值
var count=cname.split(“| |”)。长度-1;//获得相同值的重复输出的频率。
//['Marvell','Xtortion','Missible','呼气']
//array.length为4,输出从A列第3行开始返回到google工作表的每个值应为3倍(n-1)
var lrow=sheet.getLastRow();
对于(var i=1;i见下表,答案如下:
function fillArray(value, len) {
var arr = [];
for (var i = 0; i < len; i++) {
arr.push(value);
}
return arr;
}
函数填充数组(值,len){
var-arr=[];
对于(变量i=0;i
您发布的代码正在打印索引,而不是您在文章中列出的内容
codename
,而不是重新填充原始字符串count
。想想你在帖子中写的,“我需要能够将数组中的每个值反复返回到google工作表”。首先是值,然后你重复它for(var i=0;我尝试了这段代码。在日志中,我可以看到数组中出现的所有值,但当我运行它时,输出仅显示在数组的第一个值上,并且只出现一次。不确定我是否使用了错误的命令使其按我所希望的方式返回,或者此解决方案目前不适用于我的情况。但是感谢您的共享。哇!您真的很高兴ock,@Diego!我很惊讶你把它写得如此详细,并给出了我想要的精确答案。另外,你甚至还展示了我的代码的更正。我对这两个都进行了测试。但我非常喜欢你的代码,因为我发现你的代码处理结果的速度比我的快得多,因为我在运行代码时看到了工作表中的输出。a拉姆杜利拉…!!你是我的救世主,先生!:)
function fixed() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
//by Bjorn | https://stackoverflow.com/questions/881085/count-the-number-of-occurrences-of-a-character-in-a-string-in-javascript
var cname = sheet.getRange(2,1).getValue();
var code = cname.split("||");
var codename = [...new Set(code)]; //get unique values first
var count= codename.length - 1; // to get freq to repeat output of same value.
// ['Marvell','Xtortion','Ambiguous','Exhale']
// array.length is 4, output each value being returned to google sheet start from row 3 in col A should be 3 times (n-1)
var lrow=sheet.getLastRow();
for(var i=0;i<codename.length;i++){
for(var j=0;j<count;j++){
sheet.getRange(lrow+1,1).setValue(codename[i]);
var lrow=sheet.getLastRow();
}
}
}
function improved() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1");
var input = sheet.getRange(2,1).getValue();
var uniqueValues = [...new Set(input.split("||"))];
var frequency = uniqueValues.length - 1;
var output = [];
for (var i = 0; i < uniqueValues.length; i++) {
for (var j = 0; j < frequency; j++) {
output.push([uniqueValues[i]]);
}
}
sheet.getRange(sheet.getLastRow()+1, 1, output.length, output[0].length).setValues(output);
}