Autor Zpráva
Petr Ká
Profil
Ahoj

potřeboval bych prosím poradit, jak přepsat následující kod php do javascriptu.
$kosik = array("celkem"=0, "pocet"=0,"polozky"=array());

function add_to_kosik( $id, $nazev, $cena){
  if (isset($kosik["polozky"][$id])){
    $kosik["polozky"][$id]["pocet"]++;
    $kosik["celkem"] += $cena;
    $kosik["pocet"] ++;
  }
  else {
    $kosik["polozky"][$id] = array();
    $kosik["polozky"][$id]["nazev"] = $nazev;
    $kosik["polozky"][$id]["pocet"]++;
    $kosik["celkem"] += $cena;
    $kosik["pocet"] ++;
  }
}

function remove_from_kosik($id, $cena){
  if (isset($kosik["polozky"][$id])){
    if ($kosik["polozky"][$id]["pocet"]>=1){
       $kosik["polozky"][$id] == NULL;
       unset($kosik["polozky"][$id]);
       $kosik["pocet"]--;
       $kosik["celkem"]-=$cena;
    }
  }
}
ShiraNai7
Profil
Nějak takto, i když by to šlo řešit lépe.. tohle je zbytečně složité.
A ve funkci remove_from_kosik() máš chybu - nebere ohled na počet položek, když odečítá cenu z celkové.
Nesmyslů je tam víc.

var kosik = {celkem: 0, pocet: 0, polozky: {}};
function add_to_kosik(id, nazev, cena)
{
    if(undefined !== kosik.polozky[id]) {
        ++kosik.polozky[id].pocet;
    } else {
        kosik.polozky[id] = {
            nazev: nazev,
            pocet: 1
        };
    }
    kosik.celkem += cena;
    ++kosik.pocet;
}

function remove_from_kosik(id, cena)
{
    if(undefined !== kosik.polozky[id]) {
        kosik.celkem -= kosik.polozky[id].pocet * cena;
        kosik.pocet -= kosik.polozky[id].pocet;
        delete kosik.polozky[id];
    }
}
Petr Ká
Profil
Děkuji, to mi stačí, od toho se už odseknu a poradím si :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: