Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
11
Функция, выводящая в консоль сразу всех мяукающих котов
Компании, где спрашивали:
ProninTeam
Условие задачи
В отеле для животных принимаются только кошки и собаки. В этот день их количество одинаково – по 5 штук. Однако все кошки почему‑то мяукают. Функция fetchAnimals() имитирует получение списка всех животных и возвращает его с задержкой в одну секунду. Функция animalRecognizer() после небольшой паузы определяет тип животного и добавляет его в объект. Требуется реализовать функцию, которая после получения данных сразу выведет в консоль только те записи, где животное – кошка и её голос – мяуканье.
const ANIMAL_TYPE = {
CAT: 'cat',
DOG: 'dog',
};
const ANIMAL_VOICE = {
MEOW: 'meow',
WOOF: 'woof',
};
const TIMEOUT = {
1000: 1000,
75: 75,
};
class DataItem {
constructor(name, voice) {
this.name = name;
this.voice = voice;
}
makeSound() {
if (this.type) {
console.log(this.name, '-', this.voice);
} else {
console.log('Ooops');
}
}
}
const ANIMALS_TYPE = {
Molly: ANIMAL_TYPE.CAT,
Felix: ANIMAL_TYPE.DOG,
Smudge: ANIMAL_TYPE.CAT,
Sooty: ANIMAL_TYPE.CAT,
Tigger: ANIMAL_TYPE.CAT,
Charlie: ANIMAL_TYPE.DOG,
Alfie: ANIMAL_TYPE.CAT,
Oscar: ANIMAL_TYPE.DOG,
Millie: ANIMAL_TYPE.DOG,
Misty: ANIMAL_TYPE.CAT,
};
const DATA = [
new DataItem('Molly', ANIMAL_VOICE.MEOW),
new DataItem('Felix', ANIMAL_VOICE.WOOF),
new DataItem('Smudge', ANIMAL_VOICE.MEOW),
new DataItem('Sooty', ANIMAL_VOICE.WOOF),
new DataItem('Tigger', ANIMAL_VOICE.MEOW),
new DataItem('Charlie', ANIMAL_VOICE.WOOF),
new DataItem('Alfie', ANIMAL_VOICE.MEOW),
new DataItem('Oscar', ANIMAL_VOICE.WOOF),
new DataItem('Millie', ANIMAL_VOICE.WOOF),
new DataItem('Misty', ANIMAL_VOICE.MEOW),
];
function fetchAnimals() {
return new Promise(resolve => {
setTimeout(resolve, TIMEOUT[1000], DATA);
});
}
function animalRecognizer(dataItem) {
const animalWithType = Object.create(dataItem);
animalWithType.type = ANIMALS_TYPE[dataItem.name];
return new Promise(resolve => {
setTimeout(resolve, TIMEOUT[75], animalWithType);
});
}
// Здесь необходимо реализовать функцию, которая получит список животных, распознает их типы и сразу выведет в консоль только мяукающих котов.