Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno JavaScript: Banální porovnání prvků v poli

Zhoda nenastane nikdy, pretože polia sa neporovnávajú hodnotou, ale referenciou (tie polia sú dva rôzne objekty, hoci obsahujú rovnaké hodnoty).

Čiže si musíš spraviť vlastnú funkciu, ktorá vzájomne porovná všetky prvky poľa:

function compare (a, b)
{
  if (a.length != b.length)
    return false;

  for (var i = 0; i < a.length; ++i)
    if (a [i] != b [i])
      return false;

  return true;
}

if (compare (ZalohujHodnoty [i], [55, 13]))
  alert ("Shoda !!!");

Hoci v tomto konkrétnom prípade by som asi použil jednoduchšie:
if (ZalohujHodnoty [i].join () == "55,13")
  alert ("Shoda !!!");

// edit
ZalohujHodnoty [i] = hodnoty [i];
Tento riadok nezálohuje hodnoty (nevytvorí kópiu hodnôt), iba si zapamätáš referenciu na prvok poľa (dvojicu [a, b]).

(netestované)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny