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]]
});