JEN TENTO TÝDEN: Každému Webtržníkovi 1 000 Kč na publikaci článků a napsání textů s garancí 5 000 Kč na PlaCla.cz
Zobrazují se odpovědi 1 až 6 z 6

Funkce vrací return undefined

  1. Ahoj, mám maličký problém s funkcí. Zde je kód:

    Kód:
    unitAdd();
    console.log(unitAdd());
    
    function unitAdd()
    {
    	var count = 0;
    	var countArr = [];
    	$(".addParameter").click(function(){
    		count++;
    		$("#unitFieldAdd-<?= $langCode ?>").append('<div class="removeUnit-'+ count +' row mt-2"><div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6"><div class="input-group input-group-sm"><span class="input-group-prepend"><span class="input-group-text"><img src="../images/icons/languages/<?= $langCode ?>.png" alt="flag" title="<?= $langName ?>"><label class="mb-0 ml-2" for="unit-name">Název jednotky</label></span></span><input type="text" class="form-control" name="shop_name_<?= $langCode ?>[]" id="shop-name-<?= $langCode ?>" required><div class="valid-feedback">V pořádku</div><div class="invalid-feedback">Je nutné vyplnit</div></div></div><div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6"><div class="input-group input-group-sm"><span class="input-group-prepend"><span class="input-group-text"><img src="../images/icons/languages/<?= $langCode ?>.png" alt="icon" title="<?= $langName ?>"><label class="mb-0 ml-2" for="unit-value">Hodnota jednotky</label></span></span><input type="text" name="unit_value_<?= $langCode ?>[]" class="form-control" required><span class="input-group-append"><button type="button" class="deleteUnit-'+ count +' btn btn-sm btn-danger"><i class="fa fa-times" aria-hidden="true"></i></button></span><div class="valid-feedback">V pořádku</div><div class="invalid-feedback">Je nutné vyplnit</div></div></div></div>');
    	    	countArr.push(count);
    	    	return countArr;
    	});
    }
    Nevím proč ale console.log mi píše undefined. Potřeboval bych z funkce vytáhnout pole s čísly "count". Neví nějaká geniální hlava jak na to?

    Díky.

  2. Co se právě děje na Webtrhu?
  3. Ten return se týká té tvé anonymní funkce předané funkci click(function). Pokud chceš aby něco vracela funkce unitAdd, přidej return na konec jejího těla.

  4. Ano, ale pokud dám return na konec funkce, tak je pole "countArr" prázdné jelikož se kliky (count) počítá uvnitř anonymní funkce.

  5. To máš pravdu, pokud budeš chtít získávat to pole, budeš muset změnit strukturu. Např. si můžeš předávat callback:
    Kód:
    unitAdd(function(countArr) {
    	console.log(countArr);
    });
    
    function unitAdd(callback)
    {
            var count = 0;
            var countArr = [];
            $(".addParameter").click(function(){
                    count++;
                    countArr.push(count);
                    callback(countArr);
                    return countArr;
            });
    }

  6. Absoluteně neskutečné..:) Jsem lama a ty bůh:) Drbu se s tím od pátku odpol. a až nyní je to v povozu. Děkuji moc!

  7. Jeste je mozne vynechat ten "return countArr;"

Hostujeme u Server powered by TELE3