for ([i, o] of Object.entries(rules)) { }
i = 'i', o = '1'
— что на входе (i = input), что должно быть на выходе (o = output). Что на что будем менять.value
заменить все вхождения значения переменной i
на значение переменной o
. Проще всего это сделать регулярными выражениями.new RegExp('i', 'g')
создаёт регулярку `/i/g`
– она соответствует одной букве 'i', а флаг 'g' (global) значит, что нужно найти не одно первое, а все подходящие вхождения. И заменить их на 2-й аргумент функции replace()
. id
начнут повторяться: длина-то уменьшается при удалении. isNaN(42) // false
>>> posts = ['20210627/habr', '20210501/pervomay', '20210509/pobeda']
>>> sorted(posts)
['20210501/pervomay', '20210509/pobeda', '20210627/habr']
// неповторимый оригинал
arr.reduce((acc, n, i) => (
(!i || n === 1) && acc.push([]),
acc[acc.length - 1].push(n),
acc
), [])
// жалкая традиционная пародия
arr.reduce((acc, n, i) => {
if (!i || n === 1) acc.push([]);
acc[acc.length - 1].push(n);
return acc;
}, [])