У меня возникают проблемы с пониманием того, как «уменьшить» работает в этом контексте.
Я пытаюсь загрузить содержимое электронной таблицы в массив и затем применить уменьшить , чтобы получить одно значение.
var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
function updateValues(){
dataRangeSearch = activeSheet.getRange(1,1,activeSheet.getLastRow(),activeSheet.getLastColumn());
dataSearch0 = dataRangeSearch.getValues();
Logger.log("dataSearch0: " + dataSearch0);
dataSearch = dataRangeSearch.getValues().reduce(function (a, b) {
return a.concat(b);
});;
}
updateValues();
Logger.log("dataSearch: " + dataSearch);
Я ожидал, что после вызова функции updateValues () результат, сохраненный в dataSearch, будет одним значением, состоящим из всех данных в электронной таблице, соединенных вместе. Но это не то, что происходит.
Просмотр журнала:
[19-03-13 10: 33: 46: 515 PDT] dataSearch0: R1C1, R1C2, R1C3, R2C1, R2C2, R2C3
[19-03-13 10: 33: 46: 516 PDT] Поиск данных: R1C1, R1C2, R1C3, R2C1, R2C2, R2C3
dataSearch0 - это то, что я и ожидал, просто список содержимого электронной таблицы.
Я не понимаю, почему dataSearch является тем, чем он является, потому что он идентичен dataSearch0, и я ожидал, что результат сокращение даст одно значение, согласно тому, что я прочитал в W3schools:
Метод redu () уменьшает массив до одного значения.
Метод redu () выполняет предоставленную функцию для каждого значения массива (слева направо).
Возвращаемое значение функции сохраняется в аккумуляторе (результат / итог).
Но результатом накопления является не одно значение, а массив.
Буду признателен за помощь в понимании того, как уменьшение работает в этом контексте, а также как достичь моей цели (получить единственное значение, состоящее из всех данных электронной таблицы). Я хочу это, чтобы я мог искать первое вхождение строки, состоящей из ожидаемого содержимого 3 горизонтально расположенных ячеек электронной таблицы.