Элементы массива JS

302
09 января 2018, 16:02

Как вывести диапазон идущих по порядку элементов массива?

 Чтобы из такого:      35,3,6,9,11,12,13,14,15,39,9,21,25,26,27
 На выходе было такое: 35,3,6,9,11-15,39,9,21,25-27
Answer 1

Пушьте в массив строки

var data = [35, 3, 6, 9, 11, 12, 13, 14, 15, 39, 9, 21, 25, 26, 27]; 
var res = []; 
var start = 0; 
var stop = start; 
for (var i = 1; i < data.length; i++) { 
  if (data[i] == data[i - 1] + 1) 
    stop = i; 
  else { 
    if (start == stop) 
      res.push(data[start]); 
    else 
      res.push(data[start] + '-' + data[stop]); 
    start = i; 
    stop = start; 
  } 
} 
 
if (start == stop) 
  res.push(data[start]); 
else 
  res.push(data[start] + '-' + data[stop]); 
   
console.log(res);

Answer 2

вариант...

function fn(f) { 
  var c = void 0; 
  return f.reduce(function(e, d, a, b) { 
    a = d + 1 == b[++a]; 
    b = void 0 === c; 
    a && b ? c = d : a || b ? !a && b && e.push(d) : (e.push(c + "-" + d), c = void 0); 
    return e; 
  }, []); 
}; 
var data = [35, 3, 6, 9, 11, 12, 13, 14, 15, 39, 9, 21, 25, 26, 27]; 
console.log(fn(data))

READ ALSO
Создание конструктора

Создание конструктора

Помогите пожалуйстаНужно создать что-то подобное этому https://print

252
Сгенерировать диапазон часов для datetimepicker

Сгенерировать диапазон часов для datetimepicker

Использую популярный плагин datetimepicker для выбора даты и времениВ нем есть метод allowTimes, где указываются разрешенные к выбору часы, к примеру:

270
Как сделать паузу/pause в Selenium? Selenium/JavaScript

Как сделать паузу/pause в Selenium? Selenium/JavaScript

Как через код реализовать приостановку выполнения кода? Искал решения в Интернете, но зарубежные форумы дают решение, подразумевая "pause" как...

241