JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<div class="output">
</div>
JavaScript
var str = 'a, b, (c, d, (e, f), g), (h, i)';
var arr = [];
var buffer = '';
var level = 0;
for (var i = 0; i < str.length; i++) {
var letter = str[i];
if (level === 0) {
if (letter === ',') {
arr.push(buffer.trim());
buffer = '';
}
else {
buffer += letter;
if (letter === '(') {
level++;
}
}
}
else {
buffer += letter;
if (letter === '(') {
level++;
}
else if (letter === ')') {
level--;
}
}
}
arr.push(buffer.trim());
var output = '';
for (var i = 0; i < arr.length; i++) {
output += arr[i] + '<br>';
}
$('.output').html(output);
// Outputs:
// a
// b
// (c, d, (e, f), g)
// (h, i)