Перебор массива с обьектами, с поиском исключений?
Код который использует неочевидную особенность работы цикла ;-)for (var idx = 0; idx < arr.length; idx++) {
  if (arr[idx]._id === obj._id) break;
}
// Либо сработал break и idx это индекс элемента с совпадающим _id,
// либо цикл добежал до конца и idx = arr.length и элемент добавится
// в конец массива (фактически то же что и push)
arr[idx] = obj;
var idx = arr.indexOf((item) => item.id === obj._id);
if (-1 !== idx) {
    arr[idx ] = obj;
} else if (!arr.length) {
    arr.push(obj);
}
у вас 3-ий кейс как бы покрывает два предыдущих.