RatiboR1978
@RatiboR1978

Как решить задачку js?

День добрый! Есть такая задачка: Надо создать функцию showItems которая бы выводила данные из массива в полном формате или малом формате, через функцию show, задачку надо решить с помощью метода call, apply или bind. Через call я как бы сделал чтобы формат выводился нужный и через консоль он выводится но как мне запихать это в show она принимает функцию а у меня получается строка, не могу сообразить как функцию запихать в show. Уважаемые знатоки помогите.
const items = [
{
title: 'Телепорт бытовой VZHIH-101',
available: 7,
holded: 0
},
{
title: 'Ховерборд Mattel 2016',
available: 4,
holded: 5
},
{
title: 'Меч световой FORCE (синий луч)',
available: 1,
holded: 1
}
];

function formatFull() {
return `${this.title}:\n\tдоступно ${this.available} шт.\n\tв резерве ${this.holded} шт.`;
}

function formatLite() {
return `${this.title} (${this.available} + ${this.holded})`;
}

function show(format) {
console.log(format());
}

function showItems(list, formatter) {
for (let i= 0; i < list.length; i++) {
if (formatter === formatFull) {
formatFull.call(list[i]);
console.log(formatFull.call(list[i]));
}
formatLite.call(list[i]);
show(formatter)
}
}

showItems(items, formatFull);
console.log('---');
showItems(items, formatLite);
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 1
RatiboR1978
@RatiboR1978 Автор вопроса
Сделал так:
function showItems(list, formatter) {
for (let i= 0; i < list.length; i++) {
formatter === formatFull ? show(function () {
return formatFull.call(list[i]);
}) : show(function () {
return formatLite.call(list[i]);
});
}
}

showItems(items, formatFull);
console.log('---');
showItems(items, formatLite);

Вроде все верно получается, правильное ли это решение?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
08 мая 2024, в 20:21
2000 руб./за проект
08 мая 2024, в 20:15
50000 руб./за проект
08 мая 2024, в 20:07
7000 руб./за проект