Ребят, решаю задачу, запнулся на последнем пункте, буду признателен за помощь

const atTheOldToad = {

  potions: [{
      name: 'Зелье скорости',
      price: 460
    },
    {
      name: 'Дыхание дракона',
      price: 780
    },
    {
      name: 'Каменная кожа',
      price: 520
    },
    {
      name: 'жаба',
      price: 460
    }

  ],
  getPotions() {
    return this.potions
  },
  addPotion(potionName) {
    if (this.potions.includes(potionName)) {
      return `Зелье ${potionName} уже есть в инвентаре!`;
    }

    this.potions.push(potionName);
  },


  // пока все хорошо


  removePotion(potionName) {
    for (let i = 0; i < this.potions.length; i++) {
      console.log(this.potions[i]);
      if (potionName === this.potions[i].name) {
        console.log('мы нашли такой продукт');
        this.potions.splice(i, 1)
      }
    }
    console.log('---------------------------------------');
  },
  //исправили теперь все хорошо



  //а вот тут ниже пошли проблемв

  for (let potion of Object.values(this.potions)) {

    if (oldName === potion.name) {
      console.log('greeeettttt');
      console.log(potion.name);
      potion.name === 'rtyffgdfgdf'
      console.log(potion.name);
    }
    console.log(potion);
  }
  // Пиши код выше этой строки
}
}
// console.log(atTheOldToad.potions, );
// atTheOldToad.getPotions()
//console.log(atTheOldToad.getPotions());
atTheOldToad.removePotion('жаба')  //console.log(atTheOldToad.removePotion());
atTheOldToad.updatePotionName('Дыхание дракона', 'Полиморф')

// должно выполняться такое условие
//Для исходного объекта после вызова метода atTheOldToad.updatePotionName('Дыхание дракона', 'Полиморф'), в свойстве potions будет массив [ { name: 'Зелье скорости', price: 460 }, { name: 'Полиморф', price: 780 }, { name: 'Каменная кожа', price: 520 } ].
Для исходного объекта после вызова метода atTheOldToad.updatePotionName('Каменная кожа', 'Зелье неуязвимости'), в свойстве potions будет массив [ { name: 'Зелье скорости', price: 460 }, { name: 'Дыхание дракона', price: 780 }, { name: 'Зелье неуязвимости', price: 520 } ].

Ответы (2 шт):

Автор решения: Pilaton

Переделал вам немного код. Как я понял, работать он должен был именно так.

const atTheOldToad = {
  potions: [{
      name: 'Зелье скорости',
      price: 460,
    },
    {
      name: 'Дыхание дракона',
      price: 780,
    },
    {
      name: 'Каменная кожа',
      price: 520,
    },
    {
      name: 'Сок жабы',
      price: 460,
    },
  ],
  getPotions() {
    return this.potions;
  },

  addPotion(potionName, price) {
    if (this.potions.some((obj) => obj.name === potionName)) {
      return `Зелье ${potionName} уже есть в инвентаре!`;
    }

    this.potions.push({
      name: potionName,
      price: price,
    });

    return this.potions;
  },

  removePotion(potionName) {
    return this.potions.filter((obj) => obj.name !== potionName);
  },

  updatePotionName(potionName, newPotionName) {
    return this.potions.map((obj) => {
      if (obj.name === potionName) {
        obj.name = newPotionName;
      }
      return obj;
    });
  },

  // Пиши код выше этой строки
};

console.log('atTheOldToad.getPotions()', atTheOldToad.getPotions());

console.log("atTheOldToad.addPotion('Мозг петуха', 300)", atTheOldToad.addPotion('Мозг петуха', 300));

console.log("atTheOldToad.removePotion('Сок жабы')", atTheOldToad.removePotion('Сок жабы'));

console.log(
  "atTheOldToad.updatePotionName('Дыхание дракона', 'Полиморф')",
  atTheOldToad.updatePotionName('Дыхание дракона', 'Полиморф')
);

→ Ссылка
Автор решения: Влад Медведев
 getPotions() {
    return this.potions;
  },
  addPotion(newPotion) {
      for (const item of this.potions) {
            if (item.name === newPotion.name) {
                return `Error! Potion ${newPotion.name} is already in your inventory!`;
            }
        }
        const newProduct = {
            ...newPotion,
        };

    this.potions.push(newPotion);
  },
  removePotion(potionName) {
    for (let i = 0; i < this.potions.length; i += 1) {
      const potion = this.potions[i];
      if (potionName === potion.name) {
        this.potions.splice(i, 1);
      }
    }
  },
  updatePotionName(oldName, newName) {
    let resalt = `Potion ${oldName} is not in inventory`;
    for (let i = 0; i < this.potions.length; i += 1) {
      const potion = this.potions[i];

      if (oldName === potion.name) {
        potion.name = newName;
        resalt = `Found ${oldName} change to ${newName} `;
      }
    }
    return console.log(resalt);
  },
  // Пиши код выше этой строки
};
→ Ссылка