1

Тема: Google Apps Script (javascript)

Пишу в цьому підрозділі, бо знадобилося дещо поринути в світ схожий на javascript. Мені це в диковинку, тому потрібно як мінімум висловитися; а може й хтось щось підкаже.

Так, я знаю що можна було замість вкладених if-then-else одразу ж перевіряти декілька умов, зараз це більше для наглядності

-------------------------------

1. Перевіряємо чи значення numeric і чи воно інтеджер

function is_int(value){
   for (i = 0 ; i < value.length ; i++) {
      if ((value.charAt(i) < '0') || (value.charAt(i) > '9')) return false 
    }
   return true;
}

function custom_quality_arg1(arg1) {
  if (isNaN(arg1)){
    return 0;
  } else {
    if (is_int(arg1)) {
      return 1;
    } else {
      return 0;
    }
  }
}

Все ж логічну перевірку "очима" не пройшли наступні тестові значення:

1,222 (кома - це розрядність в західній культурі, воно може й для Штатів логічно інтеджер, але з точки зору вимог задачі - значення з комою це або дабл/флоат або стрінґ, тому шукаю можливість привести до вимог саме цієї задачі)
1/3 (це дріб або стрінґ, але не інтеджер)
1%
[порожньо]
7Е+75 (число з дуже великою кількістю нулів)
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 (це біґ але не інтеджер)

розумію, що функція is_int насправді перевіряє не розмірність числа, а чи всі символи є цифрою, і все одно чомусь проскочили стрінґові символи процитовані вище - це така особливість джаваскрипту, чи я просто щось пропустив?

------

2. В цьому випадку інша група значень і відповідно додається ще один крок перевірки на допустимий діапазон числа від 1 до 100

function custom_quality_score(arg2) {
  if (isNaN(arg2)){
    return 0;
  } else {
    if (1 <= arg2 && arg2 <= 100 ) {
      if (is_int(arg2)) {
        return 1;
      } else {
        return 0;
      }
    } else {
      return 0;
    }
  }
}

Все одно і тут проскочило це значення 1,222 - що це за біда в джаваскрипті? Чи ця мова вважає таке значення дослівно "одне ціле і двісті двадцять дві тисячних"? Якщо так, то що таке тоді 1.222?

P.S.: Ще раз, я розумію що це діалект лише схожий на джаваскрипт, однак питаю тут бо може хтось бачить спільні риси.

2

Re: Google Apps Script (javascript)

Можна було б і регулярним виразом перевірити, але для цього є готова функція Number.isInteger() (https://developer.mozilla.org/uk/docs/W … /isInteger)
Тільки якщо треба перевірити стрічкове значення, напр "10", то його треба привести до типу number, напр.:
Number.isInteger(Number("10"))

Цікаво чому в заголовку Google Apps script, що це взагалі таке ))

3

Re: Google Apps Script (javascript)

Google Apps script, що це взагалі таке

туторіал англійською

4

Re: Google Apps Script (javascript)

Прихований текст

о, нарешті доументація знайшлась.
Колись хотів зробити інтеграцію бота з гуглівським календарем.
Наприклад, створити подію, котра відбувається кожен день о певній годині, і коли ця подія відбувається - гугл робить запит по вказаній url, ну а далі вже бот реагує якось.
Тобто, це виходе, ніби гугл календар виступає фронт-ендом для бота.