getDisplayValues()不写为字符串

时间:2017-09-12 08:27:48

标签: javascript google-apps-script

我试图编写一个脚本,使用getDisplayValues()将值从电子表格中的列拉到数组中,并将不同的元素相互比较。但是,当比较两个元素时,即使它们不是,它们也总是被评估为不相等。这似乎是因为所有元素都是对象,尽管getDisplayValues()应该返回字符串。

false
object
object

日志

start.date <- c("2015-01-10","2015-01-11","2015-02-24")
end.date <- c("2015-03-10","2015-04-01","2015-06-13")
date10 <- data.frame(cbind(start.date,end.date))
date10$start.date <- as.character(date10$start.date)
date10$end.date <- as.character(date10$end.date)
str(date10)

如何才能正确评估?

2 个答案:

答案 0 :(得分:0)

getRange method返回一个Range,它是一个二维数组,即使你有一个列。你必须比较可能的结果:

var ids = sheet.getRange(row,col,sheetHeight).getDisplayValues();

//comparing identical elements
Logger.log(ids[4][0] == ids[5][0]);
Logger.log(typeof(ids[4][0]));
Logger.log(typeof(ids[5][0]));

答案 1 :(得分:0)

试试这个,只是代码中的一小部分内容。

var ids = sheet.getRange(row,col,sheetHeight).getDisplayValues().filter(String).toString();

//comparing identical elements
Logger.log(ids[4] == ids[5]);
Logger.log(typeof(ids[4]));
Logger.log(typeof(ids[5]));