JSFiddle - React, Tailwind, and code Playground
by adamjford
HTML
<ul>
<li id="q" class="true"></li>
<li id="w" class="true"></li>
<li id="e" class="false"></li>
<li id="r" class="true"></li>
<li id="t" class="false"></li>
<li id="y" class="false"></li>
<li id="u" class="true"></li>
<li id="i" class="true"></li>
<li id="o" class="true"></li>
</ul>
JavaScript
function group_adjacent($elems) {
var rArr = [],
currArr = $();
$elems.each(function() {
var $this = $(this);
currArr = currArr.add($this);
if (!$elems.filter($this.next()).length) {
rArr.push(currArr);
currArr = $();
}
});
return rArr;
}
$(function() {
var $filtered_list = $('ul li.true');
var groups = group_adjacent($filtered_list);
console.log(groups);
// groups should be (by ID): [[1, 2], [4], [7, 8, 9]]
});