Достаточно

let getDiet = function (data, limit) {
  let allovedSum = 0;
  let counter = 0;
  
  for (let i = 0; allovedSum <= limit; i++){
    allovedSum += data[i];
    counter = i;  
  }
  
  return counter;
}
let getDiet = function(food, dayLimit) {
  let foodEatenCalories = 0;
  let amount = 0
  for (let i = 0; foodEatenCalories <= dayLimit; i++) {
    foodEatenCalories += food[i];
    amount = i;
  }
  return amount
}

Сделал, а потом посмотрел как сделали другие. Вариантов решения данной задачи удивила))

let getDiet = function(arrayMeals, calories){
  
  let caloriesMeals = 0;
  let countMeals = 0;
  
  for(let i = 0; i < arrayMeals.length; i++){
    
      caloriesMeals += arrayMeals[i]
      
      if(caloriesMeals <= calories){
          countMeals += 1
      }
  }
  
  return countMeals
}

Я что-то совсем по минималкам пошел)

let getDiet = function (dishesCal, maxCal) {
  for (let i = 0; i < dishesCal.length; i++) {
    if (maxCal - dishesCal[i] < 0) {
      return i
   }
   maxCal = maxCal - dishesCal[i];
  }
}

Мое решение

function getDiet(calDish, calLimit) {
let i = 0;
while (calLimit >= calDish[i]) {
calLimit -= calDish[i];
i++;
}
return i;
}

function getDiet(caloriesArr, limit) {
  let caloriesTotal = 0;
  
  for (let i = 0; i < caloriesArr.length; i++) {
    caloriesTotal += caloriesArr[i]
    if (caloriesTotal > limit) return i
    }
}

Вариант с методом (reduce/reduceRight) , как пример, всё равно разбираться с методами всем придётся. Вот и я вникаю.

  1. Подробный вариант:
function getDiet (arr, limit) {
  let dishesQty = 1
  
    arr.reduce((cal, el) => {
      if (cal + el <= limit) {
        dishesQty++
        return cal + el
      }
    return cal
    })
  
  return dishesQty
} 
  1. Короткий вариант:
const getDiet = (arr, limit) => {
  let count = 1
  arr.reduce((cal, el) => cal+el <= limit ? count++ && cal+el : cal)
  return count
} 
1 лайк