@sahbeewah's solution is good, another (destructive) possibility is
while (array.pop() !== '10:30 PM") { }
although you would also need to handle non-happy cases.
We could write a generalized analog to String#split using Array#reduce as follows:
function split_array(arr, delim) {
return arr.reduce(function(result, elt) {
if (delim === elt) {
result.push([]);
} else {
result[result.length-1].push(elt);
}
return result;
}, [[]]);
}
Then
split_array(times, "10:30 PM") // [["10:00 PM", "10:15 PM"], ["10:45 PM", "11:00 PM"]]
so our result is split_array(times, "10:30 PM")[1].
An obvious extension would be to pass a function in place of delim to specify more general "delimiters".