Google Aps 脚本 - 如果输入不在行中则设置一个值
Google Aps Scripts - Set a value if input not in row
我正在尝试设置一个输入值,如果该值不在一行中。我可以获取行的值并设置值。
当我询问输入是否在行中时出现了我的问题。这是我的脚本:
//Auxiliar Funtion
function is_in_array(array,value) {
is_in = false
Logger.log('This is the value: ' + value)
for (i = 0; i < array.length; i++) {
Logger.log('This is i: ' + array[i])
if (value == array[i]) {
is_in=true;
Logger.log('I was here!')
}
}
return is_in
}
//Main
function rm(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getActiveSheet();
var fecha = ws.getRange(5,9).getValue();
//Reviso si existe la fecha
ws = ss.getSheetByName(tipo);
numCols = ws.getLastColumn();
fechas = ws.getRange(1,4,1,numCols).getValues()[0];
Logger.log('Fecha :' + fecha);
Logger.log('Fechas: ' + fechas);
is_in_result = is_in_array(fechas, fecha)
Logger.log('Functions result: ' + is_in_result)
//Logger.log(ArrayUtils.contains( fechas, fecha ))
if (is_in_result==true) {
Logger.log('If statement')
return True
} else {
Logger.log('Else Statement')
//Se añade la fecha
ws.getRange(1,numCols+1).setValue(fecha)
}
}
这是日志:
Registros de Cloud
9 ene 2022, 23:51:54 Información Fecha :Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información Fechas: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental),Fri Oct 15 2021 03:00:00 GMT-0400 (hora de verano oriental),Wed Dec 08 2021 03:00:00 GMT-0500 (hora estándar oriental),,,
9 ene 2022, 23:51:54 Información This is the value: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Fri Oct 15 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Wed Dec 08 2021 03:00:00 GMT-0500 (hora estándar oriental)
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información Functions result: false
9 ene 2022, 23:51:54 Información Else Statement
Fecha 在 Fechas 中所以函数结果必须为 true,但它的 returns false :(
我的错误在哪里?
或者,有更简单的方法来获得相同的结果吗?
也许它不起作用,因为我正在比较两个日期,我不知道...
有些东西是西班牙语,抱歉
您不能将不同的 Date
对象与 ==
或 ===
进行比较。将它们与自 Unix 纪元以来的毫秒数与 Date.getTime()
进行比较
var date1 = new Date( '2022-01-01' );
var date2 = new Date( '2022-01-01' );
console.log( 'date1 == date2: ' + ( date1 == date2 ) ); // false
console.log( 'date1 === date2: ' + ( date1 === date2 ) ); // false
console.log( 'date1.getTime() == date2.getTime(): ' + ( date1.getTime() == date2.getTime() ) ); // true
我正在尝试设置一个输入值,如果该值不在一行中。我可以获取行的值并设置值。
当我询问输入是否在行中时出现了我的问题。这是我的脚本:
//Auxiliar Funtion
function is_in_array(array,value) {
is_in = false
Logger.log('This is the value: ' + value)
for (i = 0; i < array.length; i++) {
Logger.log('This is i: ' + array[i])
if (value == array[i]) {
is_in=true;
Logger.log('I was here!')
}
}
return is_in
}
//Main
function rm(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getActiveSheet();
var fecha = ws.getRange(5,9).getValue();
//Reviso si existe la fecha
ws = ss.getSheetByName(tipo);
numCols = ws.getLastColumn();
fechas = ws.getRange(1,4,1,numCols).getValues()[0];
Logger.log('Fecha :' + fecha);
Logger.log('Fechas: ' + fechas);
is_in_result = is_in_array(fechas, fecha)
Logger.log('Functions result: ' + is_in_result)
//Logger.log(ArrayUtils.contains( fechas, fecha ))
if (is_in_result==true) {
Logger.log('If statement')
return True
} else {
Logger.log('Else Statement')
//Se añade la fecha
ws.getRange(1,numCols+1).setValue(fecha)
}
}
这是日志:
Registros de Cloud
9 ene 2022, 23:51:54 Información Fecha :Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información Fechas: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental),Fri Oct 15 2021 03:00:00 GMT-0400 (hora de verano oriental),Wed Dec 08 2021 03:00:00 GMT-0500 (hora estándar oriental),,,
9 ene 2022, 23:51:54 Información This is the value: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Thu Sep 09 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Fri Oct 15 2021 03:00:00 GMT-0400 (hora de verano oriental)
9 ene 2022, 23:51:54 Información This is i: Wed Dec 08 2021 03:00:00 GMT-0500 (hora estándar oriental)
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información This is i:
9 ene 2022, 23:51:54 Información Functions result: false
9 ene 2022, 23:51:54 Información Else Statement
Fecha 在 Fechas 中所以函数结果必须为 true,但它的 returns false :(
我的错误在哪里? 或者,有更简单的方法来获得相同的结果吗? 也许它不起作用,因为我正在比较两个日期,我不知道...
有些东西是西班牙语,抱歉
您不能将不同的 Date
对象与 ==
或 ===
进行比较。将它们与自 Unix 纪元以来的毫秒数与 Date.getTime()
var date1 = new Date( '2022-01-01' );
var date2 = new Date( '2022-01-01' );
console.log( 'date1 == date2: ' + ( date1 == date2 ) ); // false
console.log( 'date1 === date2: ' + ( date1 === date2 ) ); // false
console.log( 'date1.getTime() == date2.getTime(): ' + ( date1.getTime() == date2.getTime() ) ); // true