Мне нужно сравнить два значения ячеек и действовать на них, если они разные. Однако мой оператор «if» всегда возвращает false при сравнении содержимого ячеек, и я не могу понять, почему:
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1'); // apply to sheet name only
var testvalues = sheet.getRange('A1:A2').getValues(); // array of values to be tested
var testvalue1 = testvalues[0]; // The contents from A1
var testvalue2 = testvalues[1]; // The contents from A2
var test1 = testvalue1 == testvalue2; // True False test
var test2 = testvalue1 === testvalue2;// True False test
Browser.msgBox(testvalue1 + " and " + testvalue2 + " being the same is " + test1 + " and " + test2); // Sentence revealing outcome
};
test1 и test2 всегда возвращают false независимо от содержимого ячеек A1 и A2 (пустое, число, текст, другое). Если я отредактирую тестовые значения на это:
var testvalue1 = "We are the same value";
var testvalue2 = "We are the same value";
or
var testvalue1 = testvalues[0];
var testvalue2 = testvalues[0];
затем внезапно оба теста возвращают True, как и ожидалось. Может кто подскажет, чего мне в этом не хватает, бесит? В настоящее время в A1 и A2 стоит значение 1 (прежде, чем меня спросят об этом).
Конечная цель - использовать границу для разделения различного содержимого ячеек. У меня все остальное работает отлично, но я изолировал проблему от вышеупомянутой концепции.
Большое спасибо за любую помощь!
getValues()
всегда возвращает 2D-массив:[[A1],[A2]]
. Связанный вопрос - person TheMaster   schedule 06.04.2020