Как удалить элементы массива внутри цикла JS?
идет смещение индексов, но как это обойти, уже не знаю
Перебирайте массив индексов с конца:

for (let i = arr.length; i--; ) {
  invItems.splice(arr[i], 1);
}
Или, собирайте новый массив с данными, вместо изменения того, что есть:

invItems = invItems.filter((n, i) => !arr.includes(i));
var invItems = [
    {
        nameItem: 'Предмет_1'
    },
  {
        nameItem: 'Тест'
  },
    {
        nameItem: 'Предмет_2'
    }
];

var arr = [0,2],
    arrLength = invItems.length;

for (var i = 0; i < arrLength; i++) {
   for (var j = 0; i < arr.length; j++) {
       if (i === j) {
           invItems.splice(i, 1);
           break;
       }
   }
  
}
console.log(invItems);