Помощ относно JS задача

  • 1 115
  • 5
  •   1
Отговори
  • Somewhere far away
  • Мнения: 4 107
Здравейте, нова съм в javascript и изпитвам затруднения с една задача, така че извинявам се ако въпроса е тъп или прекалено лесен за тези, които са навътре в нещата и са по- запознати с материала.

Това е задачата:

Дадена е рецепта за бургер:
1 х питка за бургер
2 х телешко кюфте
3 х слайс топено сирене
0.5 х домат

Да се напише функция, която приема като аргументи количествата на съставките

Да се изпише в конзолата за колко бургера ще стигнат продуктите

Да се изпишат в конзолата оставащите продукти, ако има такива и какво количество остава
-----------------=------------------------------------------------------------------------------------------------------------------------------------------------------
Пример:

Input:
burgerRecipe(3, 4, 7, 5)
Output:
Total burgers: 2
Burger bread left: 1
Cheese left: 1
Tomatoes left: 4

# 1
  • Мнения: 6 302
Здравей, ето едно възможно решение само с няколко основни математически операции, if() и console.log

Скрит текст:
Код:
function burgerRecipe(br, mt, ch, tm) {
    let oneBrgrBr = br;
    let oneBrgrMt = Math.floor(mt / 2);
    let oneBrgrCh = Math.floor(ch / 3);
    let oneBrgrTm = tm * 2;
   
    let brgrNum = Math.min(oneBrgrBr, oneBrgrMt, oneBrgrCh, oneBrgrTm);
   
    let restBr = br - brgrNum;
    let restMt = mt - brgrNum * 2;   
    let restCh = ch - brgrNum * 3;   
    let restTm = tm - brgrNum * 0.5;

    console.log("Total Burgers: " + brgrNum);
   
    if(restBr != 0) console.log("Bread left: " + restBr);
    if(restMt != 0) console.log("Meat left: " + restMt);
    if(restCh != 0) console.log("Cheese left: " + restCh);
    if(restTm != 0) console.log("Tomatoes left: " + restTm);
}

burgerRecipe(3, 4, 7, 5);

Последна редакция: чт, 27 окт 2022, 18:10 от Barbabeau

# 2
  • Somewhere far away
  • Мнения: 4 107
Благодаря много!

# 3
  • Somewhere far away
  • Мнения: 4 107
Отново имам нужда от помощ. Задачата е следната:

Да се използва TO DO приложението.
● Да се създадат 2 колони - Done / In Progress
● При визуализиране на елементите, да се показват в
правилните колони, в зависимост дали имат свойство
completed = true
● При натискане на checkbox-a да се визуализират наново
елементите в респективните колони.

приложението е вече направено, но не знам как да добавя тези две колони done/ in progress и как да се местят според това дали са completed - изобщо логиката ми никаква я няма.

Давам линк към файловете.
https://github.com/whitewolf90/to-do-app

# 4
  • Мнения: 6 302
Опитай да смениш const с let на този ред, понеже в момента, като натиснеш отметката, в Inspect те уведомява Attempted to assign to readonly property.

function createToDoElement(todoObj) {
    let { text, completed } = todoObj;

После при event listener, не е click, а change:

checkbox.addEventListener('change', () => {
        completed = !completed;
        alert(completed);
});

После този алерт ще го изтриеш (или използвай console.log), но сега се вижда как като селектираш и махаш отметката, completed се мени true/false, съответно можеш да четеш тази стойност.

За задачата мисля, че имат предвид, когато сложиш отметката, to do елементът да се брои за изпълнен и да отива в друга колона Done (примерно отдясно).
Щом създадеш нов елемент, той е с празна отметка, съответно е In Progress и се нарежда отдолу на централната колона, както е сега.
Щом отбележиш completed = true, искат елемента да се премести отдясно в Done и да седи там. Ако слагаш отметки на още елементи, те всички ще се редят отдясно в Done.
Ако махнеш отметката на някоя от изпълнените задачи completed = false отново, тогава елементът трябва се върне обратно в централната колона In Progress, наравно с новосъздадените елементи.
Аз така го разбирам условието.

# 5
  • Somewhere far away
  • Мнения: 4 107
да, точно така. но нямам идея как да го направя така че като е цъкната отметката да отиде в дясно.

Общи условия

Активация на акаунт