что я делаю не так?помогите разобраться
подскажите как мне выполнить эти два условия? все остальное работает:
В теле функции composeMessage используется this
Функция composeMessage вызывается методом call внутри цикла for
а остальные условия - выполняются Не объявляй дополнительные параметры функции composeMessage(position). Используй call для вызова функции в контексте одного объекта-заказа. Используй this в теле функции для доступа к свойствам объекта-заказа в контексте которого она была вызывана. Дополни код так, чтобы в переменной messages получился массив сообщений о статусе заказов из массива orders с помощью цикла for.
const orders = [
{ email: '[email protected]', dish: 'Burger' },
{ email: '[email protected]', dish: 'Pizza' },
{ email: '[email protected]', dish: 'Taco' },
];
// Пиши код ниже этой строки
function composeMessage(position) {
for ( position=1; position<orders.length+1; position++){
messages.push(`Готовим ${orders[position-1].dish} для ${orders[position-1].email}. Ваш заказ ${position}-й в очереди.`)
}
}
const messages = [];
composeMessage()
console.log(messages);
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
const orders = [
{ email: '[email protected]', dish: 'Burger' },
{ email: '[email protected]', dish: 'Pizza' },
{ email: '[email protected]', dish: 'Taco' },
];
function composeMessage(index) {
return `Готовим ${this.dish} для ${this.email}. Ваш заказ ${index + 1}-й в очереди.`;
}
const messages = orders.map((o, i) => composeMessage.call(o, i));
console.log(messages);
const orders = [
{ email: '[email protected]', dish: 'Burger' },
{ email: '[email protected]', dish: 'Pizza' },
{ email: '[email protected]', dish: 'Taco' },
];
function composeMessage(position) {
return `Готовим ${this.dish} для ${this.email}. Ваш заказ ${position}-й в очереди.`;
}
const messages = [];
for (let i = 0; i < orders.length; i++) {
messages.push(composeMessage.call(orders[i], i + 1));
}
console.log(messages);