генерация интервалов, кратных 10 между двумя числами - PullRequest
0 голосов
/ 21 марта 2020

У меня есть два числа, таких как ESP1 и ESP2.

В моей БД есть много данных для ESP1 и ESP2, ESP1 - это минимальные значения, а ESP2 - это максимальное значение.

Мне нужно например, сгенерировать интервалы между этими двумя числами с умножением на 10.

ESP1 = 0 и ESP2 = 83

мой результат должен быть [0,10,20,30,40,50, 60,70,80].

как написать код для этого в js

Ответы [ 3 ]

0 голосов
/ 21 марта 2020

Используйте либо for, либо while l oop. Есть два подхода, которые вы можете использовать.

A: Грубая сила. Посчитайте от начального номера до конечного и сохраняйте все, кратные десяти.

const results = [];
for (let i = ESP1; i <= ESP2; i++) {
  if (i %10 === 0) {
    results.push(i);
  }
}

B: Умность. Грубая сила может быть медленной, если вы делаете это на очень большом расстоянии. Вместо того, чтобы проходить через каждое число, нам нужно только кратное десяти. Короче говоря, нам просто нужно следующее кратное десяти после ESP1, и мы добавляем десять, пока не превысим ESP2.

например,

const results = [];
const floor = ESP1 + 10 - ESP1 % 10; 
// i.e. if ESP1 is 13, add 10 to get 23, and then subtract 3 to get 20
for(let i = floor; i < ESP2; i+= 10) {
  results.push(i);
}

Если мы выполнили это с ESP1 = 3 и ESP2 = 56, мы бы получили результат [10, 20, 30, 40, 50]. Этот подход будет go через 1/10 столько итераций, сколько подход A, так как мы считаем десятки.

0 голосов
/ 21 марта 2020

Другое решение

const a = 0;
const b = 83;
const result = _.range(a, b, 1).filter(item => item%10 == 0);
console.log(result)
0 голосов
/ 21 марта 2020

Просто используйте for l oop:

function generateIntervalsOf(interval, start, end) {
  const result = [];
  let current = start;

  while (current < end) {
    result.push(current);
    current += interval;
  }

  return result;
}

generateIntervalsOf(10, 0, 83) // [0, 10, 20, 30, 40, 50, 60, 70, 80]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...