Arrays SpreadsheetApp如何从数组返回唯一值
这是我做的函数。varArrays SpreadsheetApp如何从数组返回唯一值,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,这是我做的函数。varmyArray是一个名称列表。我无法从该数组中仅获取唯一值并将其设置为其他工作表。我只想要一次名字 function array() { var app = SpreadsheetApp; var ss = app.getActiveSpreadsheet().getSheetByName("test"); var destinationSheet = app.getActiveSpreadsheet().getShe
myArray
是一个名称列表。我无法从该数组中仅获取唯一值并将其设置为其他工作表。我只想要一次名字
function array() {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet().getSheetByName("test");
var destinationSheet = app.getActiveSpreadsheet().getSheetByName("test2");
var myArray = ss.getRange(2,1,30).getValues();
destinationSheet.getRange(2, 1, 30).setValues(myArray);
}
有人能帮我过滤这个数组吗?Javascript数组有一个方法
来自,您可以使用该方法从一组值中创建一个数组,可以是String
、Map
或set
在代码中的myArray
定义之后添加此项
myArray = Array.from(new Set(myArray));
你可以阅读更多关于它的内容
或
您可以使用一个简单的forEach
循环来过滤唯一值
假设您的数组只包含名称,并且getValues
返回二维数组,那么您的数组看起来类似于-[['name1'、'name2'、'name3']
var newArray = [];
myArray.forEach(function(x){
if(newArray.indexOf(x[0]) === -1){
newArray.push(x[0]);
}
});
Javascript数组具有来自
的方法,使用该方法可以从一组值中创建数组,可以是字符串
、映射
或集
在代码中的myArray
定义之后添加此项
myArray = Array.from(new Set(myArray));
你可以阅读更多关于它的内容
或
您可以使用一个简单的forEach
循环来过滤唯一值
假设您的数组只包含名称,并且getValues
返回二维数组,那么您的数组看起来类似于-[['name1'、'name2'、'name3']
var newArray = [];
myArray.forEach(function(x){
if(newArray.indexOf(x[0]) === -1){
newArray.push(x[0]);
}
});
这里有另一种方法(针对谷歌脚本)
函数myArray(){
var-ss,s,a;
ss=电子表格应用程序.getActive();
s=ss.getSheetByName(“test”).getRange(2,1,30).getValues();
a=[];
a、 推(s[0]);
对于(变量n=1;n
这里有另一种方法(适用于谷歌脚本)
函数myArray(){
var-ss,s,a;
ss=电子表格应用程序.getActive();
s=ss.getSheetByName(“test”).getRange(2,1,30).getValues();
a=[];
a、 推(s[0]);
对于(变量n=1;n
添加到@JPV的答案中,这几乎是完美的,但没有考虑到“ab”跟在“abc”后面的情况。在这种情况下,代码不会将“ab”识别为新实例。要实现这一点,您需要将代码更改为以下内容:
function countDistinct() {
var sh = SpreadsheetApp.getActive();
var ss = sh.getSheetByName('Sheet1');
var length = ss.getLastRow()
var data = ss.getRange(1,1,length,1).getValues();
var a = [];
var b = 0;
for (var n = 0; n<length; n++) {
if (a.indexOf(data[n].join()) == -1) {
a.push(data[n].join());
b++;
}
}
Logger.log(a);
Logger.log(b);
}
函数countDistinct(){
var sh=SpreadsheetApp.getActive();
var ss=sh.getSheetByName('Sheet1');
var length=ss.getLastRow()
var data=ss.getRange(1,1,length,1).getValues();
var a=[];
var b=0;
(var n=0;n添加到@JPV的答案中,这几乎是完美的,但没有考虑到“ab”跟在“abc”后面的实例。在这种情况下,代码不会将“ab”识别为新实例。要获得该结果,您需要将代码更改为以下内容:
function countDistinct() {
var sh = SpreadsheetApp.getActive();
var ss = sh.getSheetByName('Sheet1');
var length = ss.getLastRow()
var data = ss.getRange(1,1,length,1).getValues();
var a = [];
var b = 0;
for (var n = 0; n<length; n++) {
if (a.indexOf(data[n].join()) == -1) {
a.push(data[n].join());
b++;
}
}
Logger.log(a);
Logger.log(b);
}
函数countDistinct(){
var sh=SpreadsheetApp.getActive();
var ss=sh.getSheetByName('Sheet1');
var length=ss.getLastRow()
var data=ss.getRange(1,1,length,1).getValues();
var a=[];
var b=0;
对于(var n=0;当我从可插入的dans l'objet函数数组({[Array.Array的本机代码,arity=1])中输入以下内容时,我收到了此错误消息:.它看起来像google sheet无法识别方法from@MaximeMorin-Gagnon你能复制并粘贴错误消息吗?我不明白写的是什么。TypeError:Fontion来自可插入的dans l'objet函数数组(){[native code for Array.Array,arity=1]}。(ligne 9,fichier“code”)你能在不使用来自
函数的的情况下发布变量myArray
的初始值吗?@MaximeMorin Gagnon请查看替代方法,希望这有帮助。当我输入以下内容时,我收到了这个错误消息:TypeError:Fonction from Introvable dans l'objet函数数组(){[native code for Array.Array,arity=1]}.它看起来像google sheet无法识别方法from@MaximeMorin-Gagnon你能复制并粘贴错误消息吗?我不明白写的是什么。TypeError:Fontion来自可插入的dans l'objet函数数组(){[native code for Array.Array,arity=1]}。(ligne 9,fichier“code”)你能在不使用来自
函数的的情况下发布变量myArray
的初始值吗?@MaximeMorin Gagnon请查看替代方法,希望这有帮助。这非常有效。如果你愿意,你能用join()和indexOf()快速解释If语句吗.我不太明白我遗漏的这一部分moslty@MaximeMorin-Gagnon.Sure:join()方法将数组转换为字符串。因此数组“a”将转换为字符串(包含推入其中的所有行),indexOf将检查当前行(在循环中)是否由join()转换为字符串方法,是“较大”字符串(a)的一部分。如果这有帮助,请向上投票或接受给出的答案。这非常有效。如果需要,可以用join()和indexOf()快速解释If语句。我不确定是否理解我缺少的这部分moslty@MaximeMorin-Gagnon.当然:join()方法将数组转换为字符串。因此数组“a”将转换为字符串(包含推入其中的所有行),indexOf将检查通过join()方法转换为字符串的当前行(在循环中)是否是该“较大”字符串(a)的一部分。如果这有帮助,请向上投票或接受给定的答案。