Тема: 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.: Ще раз, я розумію що це діалект лише схожий на джаваскрипт, однак питаю тут бо може хтось бачить спільні риси.