Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays SpreadsheetApp如何从数组返回唯一值_Arrays_Google Apps Script_Google Sheets - Fatal编程技术网

Arrays SpreadsheetApp如何从数组返回唯一值

Arrays 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

这是我做的函数。var
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)的一部分。如果这有帮助,请向上投票或接受给定的答案。