<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);