JSFiddle - React, Tailwind, and code Playground
HTML
<h1 id="title">Split an array on INT</h1> Output
<textarea type="input" id="txtOutput" cols="40" rows="10"></textarea>
JavaScript
main();
function main() {
var x = [1,2,3,"abc","def","ghi",4,"jkl",5,6,"mno","pq","r","s","tu","v",2,4,55,"wx","yz"];
var txtOutput = document.getElementById("txtOutput");
txtOutput.value = array_to_string(split_on_type_change(x));
}
function split_on_type_change(input_array) {
var output_array = [];
var temp_array = [];
var last_type = '';
for (i = 0; i < input_array.length; i++) {
if (typeof(input_array[i]) == 'number' && last_type == 'string') {
// append temp_array to output_array
output_array.push(temp_array);
// reset temp_array
temp_array = [];
}
// append value to temp_array
temp_array.push(input_array[i]);
// keep track of the previous value's type
last_type = typeof(input_array[i]);
}
// append temp_array to output_array
output_array.push(temp_array);
return output_array;
}
function array_to_string(array_to_convert) {
var output_string = '';
output_string = '[\n';
for (i = 0; i < array_to_convert.length; i++) {
if (i > 0) {
output_string += ',\n';
}
output_string += ' [';
for (j = 0; j < array_to_convert[i].length; j++) {
if (j > 0) {
output_string += ',';
}
output_string += array_to_convert[i][j];
}
output_string += ']';
}
output_string += '\n ]\n';
return output_string;
}