Как в массиве добавить условие

Рейтинг: 0Ответов: 1Опубликовано: 19.03.2023

Есть массив данных в таблице как на картинке. К нижеуказанному коду необходимо добавить, что если элемент массива [02]==="Дмитрий", то по остальным элементам необходимо провести расчет item[1]-item[0], а если [02]==="Павел", то для этих элементов расчет будет другим, а именно item[1]-item[0]+1, т.е. добавляем единицу.

Пока написал код ниже и впал в ступор, не могу понять, как добавить это условие.

function Calcullation() {
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = ss.getSheetByName('data');
  let lr = sheet.getLastRow();

  let range = sheet.getRange(1, 1, lr, 3).getValues();

  let newarr = range.map(calc);

  function calc(item) {
    return [item[1] - item[0]];
  }

  let setvalues = sheet.getRange(1, 4, newarr.length).setValues(newarr).setHorizontalAlignment('center');
}

введите сюда описание изображения

Ответы

▲ 0Принят

введите сюда описание изображения

/* exported simpleCalculationByRowSample */
function simpleCalculationByRowSample() {
  const book = SpreadsheetApp.getActive();
  const sheet = book.getSheetByName('Пример простого расчета по строкам');
  const data = sheet.getDataRange().getValues();
  data.splice(0, 2); // Отрываем шапку
  const values = data.map(calc_);
  sheet.getRange(3, 4, values.length, values[0].length).setValues(values);
}
function calc_(row) {
  const [param1, param2, name] = row;
  if (name === 'Дмитрий') return [param2 - param1];
  else if (name === 'Павел') return [param2 - param1 + 1];
  return [''];
}

Пример в Таблице https://docs.google.com/spreadsheets/d/1MqeW7LkEUcsDH8lUksXBLHWmSeu8up2Jr_3ujVwE4SE/edit#gid=23944170&range=A1