You can use an object to track how many unique items you have seen if your objects are hashable:
If you want to stop after you add a third unique value:
var items = [[1,1,2,2,3,3,4,4,5,5],[0,0,0,1,0,1,0,1,0,1]];
function solve(items) {
var seenobj = Object.create(null);
var iseen = 0;
var i = -1;
while (i++i < items[0].length && Object.keys(seen).length < 3) {
seen[items[0][i]]var element = items[0][i];
if (element in obj) continue;
obj[element] = true;
i++;seen++;
}
return [items[0].slice(0,i), items[1].slice(0,i)];
};
document.getElementById('result').innerHTML = JSON.stringify(solve(items));
<pre id="result"></pre>
If you want to break out of the loop when the 4th unique value is seen, you can do it like this:
var items = [[1,1,2,2,3,3,4,4,5,5],[0,0,0,1,0,1,0,1,0,1]];
function solve(items) {
var seenobj = Object.create(null);
var iseen = 0;
var i = -1;
while (i++i < items[0].length && Object.keys(seen).length < 4) {
seen[items[0][i]]var element = items[0][i];
if (element in obj) continue;
obj[element] = true;
i++;seen++;
}
return [items[0].slice(0,i-1), items[1].slice(0,i-1)];
};
document.getElementById('result').innerHTML = JSON.stringify(solve(items));
<pre id="result"></pre>