Считайте вперед и назад - минимальные максимальные числа - PullRequest
0 голосов
/ 27 октября 2018

У меня есть минимальное число и максимальное число

 t1Min = 70;
 t1Max = 1064;
 time = 1; 

Мне нужно просто сосчитать до максимального числа (например, 1064) и снова вернуться к минимальному числу (например, 70).на основе заданного числа «секунд».Начиная с минимального номера (70).

70 , 71,73,74,75,76,77, ..., 1062,1063, 1064 ,1063,1062, ... 75,74,73,72,71, 70 , 71,72

Секунды могут составлять 1,2,3, ... 45,46,47, .., 2045,2046,2047

var time=1;
nums= new Array;
while(1){
    //time seconds 1,2,3,...45,46,47,
    t1 = t1Min+time;

    if(t1>t1Max){
        t1=t1Max-time;
    }
    time++;
    nums[time]=t1;
    }

Но это не работает.Это нужно для временной шкалы для эффекта CSS3.Каждый таймфрейм должен увеличивать 3D позицию

1 Ответ

0 голосов
/ 28 октября 2018

Если я правильно понимаю, что вы хотите, вы можете инициализировать массив длины (ваши секунды), а затем заполнить его с помощью map() или с помощью Array.from() (вы также можете просто использовать цикл for`).Просто чередуйте счетчик от 1 до -1.

Я установил значение от 10 до 20 для длины 30, чтобы сделать консоль удобочитаемой:

let min = 10
let max = 20
let length = 30
let counter = 1
let current = min
let arr = Array.from({length: length}, (_, i)=>{
    let ret = current
    current += counter
    if (current >= max || current <= min) counter *= -1
    return ret
})
console.log(arr.join(','))

Вы также можете сделать это аналитически, что немного проще (в некотором смысле):

let min = 5
let max = 12
let length = 20
let arr = Array.from({length: 40}, (_, i)=>{
    let m = Math.floor(i / (max - min))
    return m % 2
    ? max - (i - (max - min) * m )
    : min + (i - (max - min) * m )
    
})
console.log(arr.join(','))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...