Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.08.2016, 09:01
Новичок на форуме
Отправить личное сообщение для AlTiantum Посмотреть профиль Найти все сообщения от AlTiantum
 
Регистрация: 17.08.2016
Сообщений: 9

Передача массивов в функцию
Здравствуйте, в 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);
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2016, 09:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,129

AlTiantum,
а что мешает обьединить массивы?
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2016, 10:16
Новичок на форуме
Отправить личное сообщение для AlTiantum Посмотреть профиль Найти все сообщения от AlTiantum
 
Регистрация: 17.08.2016
Сообщений: 9

Сообщение от рони Посмотреть сообщение
AlTiantum,
а что мешает обьединить массивы?
Предлагаете их объединить в многомерный массив? И считывать каждый массив от туда. Думал об этом и попробовал, но не получилось
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2016, 10:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от AlTiantum
как передать
Видимо не как, а когда, поскольку как - нарисовано в последней строчке. Теперь придумай когда их передавать и передавай точно так же.
Ответить с цитированием
  #5 (permalink)  
Старый 18.08.2016, 10:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,129

AlTiantum,
сделать 1 массив из 3 и отсортировать
Ответить с цитированием
  #6 (permalink)  
Старый 18.08.2016, 10:53
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Или тебе подряд надо запихивать?

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]);


Предвосхищаю вопрос как вывести метку номера. )))
Ответить с цитированием
  #7 (permalink)  
Старый 18.08.2016, 11:07
Новичок на форуме
Отправить личное сообщение для AlTiantum Посмотреть профиль Найти все сообщения от AlTiantum
 
Регистрация: 17.08.2016
Сообщений: 9

Спасибо! Вроде дошло, решил для саморазвития js изучить.
Ответить с цитированием
  #8 (permalink)  
Старый 18.08.2016, 11:11
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Ну то есть допустим номер маршрута - это метка, следовательно придется модифицировать функцию, чтобы она выводила все маршруты на ближайшее время.
Ответить с цитированием
  #9 (permalink)  
Старый 18.08.2016, 12:33
Новичок на форуме
Отправить личное сообщение для AlTiantum Посмотреть профиль Найти все сообщения от AlTiantum
 
Регистрация: 17.08.2016
Сообщений: 9

Сообщение от warren buffet
выводила все маршруты на ближайшее время.
Было бы конечно не плохо, так сделать, но с моими знаниями js, это будет очень тяжело, лучше начать с малого
Ответить с цитированием
  #10 (permalink)  
Старый 18.08.2016, 13:42
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Если не менять структуру массивов, придется добавить еще аргумент.

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=' ';
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
передача параметров в функцию TomTykver jQuery 2 27.02.2016 12:28
передача аргументов в функцию yintar jQuery 6 09.12.2014 19:29
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
Передача параметров с сервера в функцию mikel Events/DOM/Window 2 29.08.2011 21:18