Нужно подсчитать сколько было переходов от + к -
var temp = [17, -9, -20, -34, -2, 32, -14, 40, -49, 45, -1, -40, -23, 14, -23, -43, 5, 2, -45, 40, -10, 25, -31, -14, -43, 33, 1, -1, 1, 24, 13, -46, -34, -17, 10, -28, -19, -5, -38, 0, -34, 15, 21, -46, -27, 41, 15, 19, -9, 27, -7, -3, -16, 36, 35, 17, -38, 41, -5, 8, -7, -37, 17, -33, -21, 7, 1, 33, -13, 27, -41, 2, -43, 14, 26, 7, -11, 29, 43, -14, -1, 36, 19, -41, -38, -10, 16, -2, -21, -36];
В массиве содержаться данные о ежедневной температуре в течении зимних месяцев. Нужно подсчитать сколько было циклом замерзания в этот период (замерзания это когда сегодня температура плюсовая, а завтра минусовая). Помогите с алгоритмом:) Я понимаю что нужно сравнивать через for первый элемент массива со вторым и если первый + а второй - то записать как 1 замерзание, потом проверяем второй с 3м если нет перехода от - к + или если есть то не пишем, поверяем дальше - если есть опять переход от + к - пишем, и т.д. но как это кодом написать -_- |
Цитата:
Цитата:
|
EuRusik,
var temp = [17, -9, -20, -34, -2, 32, -14, 40, -49, 45, -1, -40, -23, 14, -23, -43, 5, 2, -45, 40, -10, 25, -31, -14, -43, 33, 1, -1, 1, 24, 13, -46, -34, -17, 10, -28, -19, -5, -38, 0, -34, 15, 21, -46, -27, 41, 15, 19, -9, 27, -7, -3, -16, 36, 35, 17, -38, 41, -5, 8, -7, -37, 17, -33, -21, 7, 1, 33, -13, 27, -41, 2, -43, 14, 26, 7, -11, 29, 43, -14, -1, 36, 19, -41, -38, -10, 16, -2, -21, -36]; var len = temp.filter(function(a,i) { return a > 0 && temp[++i] && temp[i] < 0 }).length; alert(len) |
Цитата:
https://learn.javascript.ru/array https://learn.javascript.ru/while-for#цикл-for |
EuRusik,
А переход от 0 к минусу считается? |
Dilettante_Pro, Нет
|
код оказался простой как пробка :)
var counter = 0; var day = 0; for(var i = 0; i < temp.length; i++) { if (temp[i] > 0 && temp[i + 1] < 0) { counter++; day = i; } console.log('Замерзание: ' + counter + ' день: ' + day); } |
Цитата:
Это ведь самые первые тренировочные задания на массивы и циклы... Т.е. букварские упражнения на понимание. |
Часовой пояс GMT +3, время: 11:21. |