Передача массивов в функцию
Здравствуйте, в javascript только стал познавать, возник вопрос пока ответа не нашел, нашел на форуме скрипт с расписанием прихода транспорта, так вот, как передать другие массивы(timeBuss1, timeBuss2) с временем в функцию для расчета?
var timeBuss = ['9:30','10:30','11:40','11:45','11:50','12:30','13:20','14:06']
var timeBuss1=['8:04', '9:55',"10:35"]
var timeBuss2=['22:22','22:53' ,'23:44','23:59','00:56']
function timerCurrentBuss(time) {
var timeBuss = time;
setInterval(currentTimeForBuss, 60);
function currentTimeForBuss() {
var date = new Date()//Получили текущую дату
var time = {
hours: date.getHours(),
minutes: date.getMinutes(),
seconds: date.getSeconds()
}//получили часы и минуты
document.getElementById("current_time").innerHTML = ('Текущее время: ' + (time.hours + ':' + time.minutes + ':' + time.seconds));
for (var i = 0; i < timeBuss.length-1; i++) {//Цикл по массиву с расписанием
var tmp = timeBuss[i].split(':');//разбили время расписания на часы и минуты
var bussTime = {
hours: tmp[0], minutes: tmp[1]
}
tmp = timeBuss[i + 1].split(':');
var nextBussTime = {
hours: tmp[0], minutes: tmp[1]
}
if ((time.hours >= bussTime.hours && time.hours <= nextBussTime.hours)) {
var timeLeft = bussTime;
}
}
document.getElementById("nextbusleft").innerHTML = ("Осталось минут: " + (timeLeft.minutes - time.minutes))
};
}
timerCurrentBuss(timeBuss);
|
AlTiantum,
а что мешает обьединить массивы? |
Цитата:
|
Цитата:
|
AlTiantum,
сделать 1 массив из 3 и отсортировать |
Или тебе подряд надо запихивать?
var times = {
0:['9:30','10:30','11:40','11:45','11:50','12:30','13:20','14:06'],
1:['8:04', '9:55',"10:35"],
2:['22:22','22:53' ,'23:44','23:59','00:56']
}
for(var t in times)
timerCurrentBuss(times[t]);
Предвосхищаю вопрос как вывести метку номера. ))) |
Спасибо!:thanks: Вроде дошло, решил для саморазвития js изучить.
|
Ну то есть допустим номер маршрута - это метка, следовательно придется модифицировать функцию, чтобы она выводила все маршруты на ближайшее время.
|
Цитата:
|
Если не менять структуру массивов, придется добавить еще аргумент.
timerCurrentBuss(time,num); и поменять document.getElementById("nextbusleft").innerHTML = ("Осталось минут: " + (timeLeft.minutes - time.minutes)) на document.getElementById("nextbusleft").insertAdjac entHTML("<div>До рейса ' +num+' осталось минут: " + (timeLeft.minutes - time.minutes)+'<div>'); но тогда перед запуском цикла, придется стирать все document.getElementById("nextbusleft").innerHTML=' '; |
| Часовой пояс GMT +3, время: 12:59. |