Как вывести диапазон идущих по порядку элементов массива?
Чтобы из такого: 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
Пушьте в массив строки
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);
вариант...
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))
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую популярный плагин datetimepicker для выбора даты и времениВ нем есть метод allowTimes, где указываются разрешенные к выбору часы, к примеру:
Как через код реализовать приостановку выполнения кода? Искал решения в Интернете, но зарубежные форумы дают решение, подразумевая "pause" как...
Как преобразовать данный объект: