Javascript 检查/引用空数组值(Google应用程序脚本)
我有一个谷歌电子表格,做一些简单的单元格引用和数学每月出差的工作。我有一个函数,可以读取a列中的值(由工作表上的WEEKDAY()公式获得)。如果是星期六(值5)或星期日(值6),它会将整行变黑。我需要它以某种方式格式化工作日(值0-4)并且,只有当该行中的日期单元格为空时,才能将该行重新格式化为标准空白。如何搜索数组(您可以看到我是如何创建的)并在该数组中找到空值?我将复制粘贴数组值的示例日志(注意周期性[])Javascript 检查/引用空数组值(Google应用程序脚本),javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,我有一个谷歌电子表格,做一些简单的单元格引用和数学每月出差的工作。我有一个函数,可以读取a列中的值(由工作表上的WEEKDAY()公式获得)。如果是星期六(值5)或星期日(值6),它会将整行变黑。我需要它以某种方式格式化工作日(值0-4)并且,只有当该行中的日期单元格为空时,才能将该行重新格式化为标准空白。如何搜索数组(您可以看到我是如何创建的)并在该数组中找到空值?我将复制粘贴数组值的示例日志(注意周期性[]) 以下是在您的情况下检索空数组的方法: var x = [[1.0], [2.0],
以下是在您的情况下检索空数组的方法:
var x = [[1.0], [2.0], [], [4.0], [5.0], [6.0], [0.0], [1.0], [], [3.0], [4.0], [5.0], [], [], [1.0], [], [3.0], [4.0], [5.0], [6.0], [0.0], [1.0], [2.0], [3.0], [], [5.0], [6.0], [0.0], [1.0], [2.0], []];
function myFunction(x) {
for (var i = 0; i < x.length; i ++) {
if(x[i].length == 0){
// array is empty
Logger.log('empty');
} else {
//array not empty
Logger.log('not empty');
}
}
}
var x=[1.0]、[2.0]、[4.0]、[5.0]、[6.0]、[0.0]、[1.0]、[3.0]、[4.0]、[5.0]、[1.0]、[3.0]、[4.0]、[5.0]、[6.0]、[0.0]、[1.0]、[2.0]、[3.0]、[5.0]、[6.0]、[0.0]、[1.0]、[2.0]、[2.0];
函数myFunction(x){
对于(变量i=0;i
我还注意到您的语句中缺少“;”。您的脚本按原样运行吗
干杯这是在您的情况下检索空数组的方法:
var x = [[1.0], [2.0], [], [4.0], [5.0], [6.0], [0.0], [1.0], [], [3.0], [4.0], [5.0], [], [], [1.0], [], [3.0], [4.0], [5.0], [6.0], [0.0], [1.0], [2.0], [3.0], [], [5.0], [6.0], [0.0], [1.0], [2.0], []];
function myFunction(x) {
for (var i = 0; i < x.length; i ++) {
if(x[i].length == 0){
// array is empty
Logger.log('empty');
} else {
//array not empty
Logger.log('not empty');
}
}
}
var x=[1.0]、[2.0]、[4.0]、[5.0]、[6.0]、[0.0]、[1.0]、[3.0]、[4.0]、[5.0]、[1.0]、[3.0]、[4.0]、[5.0]、[6.0]、[0.0]、[1.0]、[2.0]、[3.0]、[5.0]、[6.0]、[0.0]、[1.0]、[2.0]、[2.0];
函数myFunction(x){
对于(变量i=0;i
我还注意到您的语句中缺少“;”。您的脚本按原样运行吗
Cheers可以为您这样做,它使处理2D数组的过程更简单。为此,您需要IndexOf函数,并使用-1搜索所有列。可以为您这样做,它使处理2D数组的过程更简单。为此,您需要IndexOf函数,然后使用-1搜索所有列。我解决了查找数组中哪个点为空的问题,而是设置了一个变量来引用循环中的每个单元格,并检查其本身是否为空。如果它看到为空,则执行代码块。下面的示例
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var range = sheet.getRange("A3:A33")
var value = range.getValues()
var sheetCheckRange = sheet.getRange(2,2)
var sheetCheck = sheetCheckRange.getValue()
if (sheetCheck == "Date") {
for (i = 0; i < value.length; i++) {
var row = sheet.getRange((i + 3), 1, 1, 11)
var sessionCell = sheet.getRange((i + 3), 3)
var dateCell = sheet.getRange((i+3), 2)
var section1 = sheet.getRange((i+3), 2, 1, 5)
var section2 = sheet.getRange((i+3), 8, 1, 3)
if (value[i] == 5 || value[i] == 6) {
row.setBackground("Black")
row.setBorder(true, null, true, null, null, null)
//top, left, bottom, right, vertical, horizontal
sessionCell.setValue("W")
} if (value[i] == 0 || value[i] == 1 || value[i] == 2 || value[i] == 3 || value[i] == 4) {
section1.setBackground("white")
section2.setBackground("white")
section1.setBorder(false, null, false, null, null, false)
section2.setBorder(false, null, false, null, null, false)
} if (dateCell.isBlank()) {
section1.setBackground("white")
section2.setBackground("white")
section1.setBorder(false, null, false, null, null, false)
section2.setBorder(false, null, false, null, null, false)
sessionCell.setValue("")
}
}
}
}
函数onEdit(){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sheet=ss.getActiveSheet()
var范围=sheet.getRange(“A3:A33”)
var value=range.getValues()
var sheetCheckRange=sheet.getRange(2,2)
var sheetCheck=sheetCheckRange.getValue()
如果(sheetCheck==“日期”){
对于(i=0;i
我还通过将函数重命名为来解决需要单独触发器的问题
函数onEdit()
这也使得复制电子表格以便在公司内共享变得更加容易,无需每个用户授权和设置触发器。我解决了查找数组中哪个点为空的问题,而是设置了一个变量来引用循环中的每个单元格,并检查其本身是否为空。如果它看到为空,则执行代码块。示例如下
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var range = sheet.getRange("A3:A33")
var value = range.getValues()
var sheetCheckRange = sheet.getRange(2,2)
var sheetCheck = sheetCheckRange.getValue()
if (sheetCheck == "Date") {
for (i = 0; i < value.length; i++) {
var row = sheet.getRange((i + 3), 1, 1, 11)
var sessionCell = sheet.getRange((i + 3), 3)
var dateCell = sheet.getRange((i+3), 2)
var section1 = sheet.getRange((i+3), 2, 1, 5)
var section2 = sheet.getRange((i+3), 8, 1, 3)
if (value[i] == 5 || value[i] == 6) {
row.setBackground("Black")
row.setBorder(true, null, true, null, null, null)
//top, left, bottom, right, vertical, horizontal
sessionCell.setValue("W")
} if (value[i] == 0 || value[i] == 1 || value[i] == 2 || value[i] == 3 || value[i] == 4) {
section1.setBackground("white")
section2.setBackground("white")
section1.setBorder(false, null, false, null, null, false)
section2.setBorder(false, null, false, null, null, false)
} if (dateCell.isBlank()) {
section1.setBackground("white")
section2.setBackground("white")
section1.setBorder(false, null, false, null, null, false)
section2.setBorder(false, null, false, null, null, false)
sessionCell.setValue("")
}
}
}
}
函数onEdit(){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sheet=ss.getActiveSheet()
var范围=sheet.getRange(“A3:A33”)
var value=range.getValues()
var sheetCheckRange=sheet.getRange(2,2)
var sheetCheck=sheetCheckRange.getValue()
如果(sheetCheck==“日期”){
对于(i=0;i
我也在aro工作
var x = [[1.0], [2.0], [], [4.0], [5.0], [6.0], [0.0], [1.0], [], [3.0], [4.0], [5.0], [], [], [1.0], [], [3.0], [4.0], [5.0], [6.0], [0.0], [1.0], [2.0], [3.0], [], [5.0], [6.0], [0.0], [1.0], [2.0], []];
function myFunction(x) {
for (var i = 0; i < x.length; i ++) {
if(x[i] == null){
// array is empty
Logger.log('empty');
} else {
//array not empty
Logger.log('not empty');
}
}
}