<script>
    const dogs = [
      {weight: 22, curFood: 250, owners: ['Alice', 'Bob']},
      {weight: 8, curFood: 200, owners: ['Matilda']},
      {weight: 13, curFood: 275, owners: ['Sarah','John']},
      {weight: 32, curFood: 340, owners: ['Michael']}
    ];
    //1.
    const recommendedFood = function(arr){
      const recommendedPortion = arr.map((acc, i) => acc.recommendedPort = Math.round(acc.weight ** 0.75 * 28))
    };
    recommendedFood(dogs);
    /*dogs.forEach(dog => dog.recPor = dog.weight ** 0.75 * 28)*/
    console.log(dogs);

    //2.
    const dogSarah = dogs.find(dog => dog.owners.includes('Sarah'));
    const portion = dogSarah.curFood > dogSarah.recommendedPort? 'It is eating too much!':'It is eating too little.';
    console.log(portion);

    //3.
    const ateTooMuch = dogs.filter(dog => dog.curFood > dog.recommendedPort).flatMap(dog => dog.owners);
    console.log(ateTooMuch);
    const ateTooLittle = dogs.filter(dog => dog.curFood < dog.recommendedPort).flatMap(dog => dog.owners);
    console.log(ateTooLittle);

    //4.
    const print = `${ateTooMuch.join(' and ')}'s dog ate too much!`;
    console.log(print);
    const printLess = `${ateTooLittle.join(' and ')}'s dog ate too much!`;
    console.log(printLess);

    //5.
    const exactAmount = dogs.map(dog => dog.recommendedPort == dog.curFood? true:false);
    console.log(exactAmount);

    //6.
    const okAmount = dogs.map(dog =>
      dog.perfect = (dog.curFood >= (dog.recommendedPort * 0.9) && dog.curFood <= (dog.recommendedPort * 1.1)) ? true:false);
      console.log(okAmount);
      /*const checkEatingOk = dog => dog.curFood > dog.recommendedPort * 0.9 && dog.curFood < dog.recommendedPort * 1.1; */

    //7.
    const onlyOk = dogs.filter(dog => dog.perfect == true);
    console.log(onlyOk);

    //8.
    const dogSorted = dogs.slice().sort((a,b) => a.recommendedPort - b.recommendedPort);
    console.log(dogSorted);