Цикл For работает не так, как ожидалось, при проверке содержимого массива в последнем столбце

#arrays #for-loop #google-apps-script #google-sheets

Вопрос:

Я сохранил информацию этой таблицы в 2D-массиве с помощью скрипта Google Apps. Весь процесс построения массива работал как задумано.

Область X Y Главный Незначительный Угол СенсорНо
1 25049 380.500 246.500 190.953 167.023 0 1
2 24248 393.500 247.000 192.976 159.986 0 2
3 18250 382.500 247.000 159.023 146.121 0 3

Однако, когда я попытался построить цикл for (как показано в следующем коде), который проходит через каждый столбец первой строки массива, я не получил ожидаемого результата. Я попытался сказать циклу, что когда содержимое массива равно «SensorNo», чтобы сохранить соответствующее значение n в качестве новой переменной, а затем разорвать цикл. Но всякий раз, когда содержимое массива, которое я ищу, находится в последнем столбце, переменная остается неопределенной…

 for(n=0;n<fileContentArray[0].length;n  ){
  if(fileContentArray[0][n]=="SensorNo"){
    var sensorNoCol=n;
    break;
  }
}
 

Я надеюсь, что кто — нибудь сможет мне помочь.
Всего наилучшего, Макс

Ответ №1:

 function getHeaderColumns() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Sheet Name");
  const hRow = 1;
  const hA = sh.getRange(hRow, 1, 1, sh.getLastColumn()).getValues()[0];
  let col = {};
  hA.forEach((h, i) => { col[h] = i   1 });
  return col['SensorNo'];
}