Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Likvidace duplicitního prvku v POLI

Mám dvourozměrné pole ve formátu:

[js]
var hodnoty = [[7, 9], [12, 11],[3,12],[12,11],[12,11],[14,2]];
function vyhazejDuplicity()
{

// Tak tato funkce me zajima :-)

}

[/js]

A ted popisi co vlastne chci. Chci vymazat z pole "hodnoty" všechny dvou-prvky kromě jediného,
které mají první prvek pole 12.

Takze potrebuji toto pole ve funkci pretridit tak, aby jeho vysledkem bylo procistene pole o hodnotach:

hodnoty = [[7, 9],[12, 11],[3,12],[14,2]] Zbyly tedy takove dvojice hodnot, ktere zacinaji
vzdy rozdilnym cislem. Nechci samozrejme statickou funkci, ktera vyhazuje jen tento konkretni pripad, ale
funkci, ktera zjisti duplicity a ponecha vzdy jen jednu hodnotu.
Napovim, ze dvojice jsou obe stejne jestli to pomuze.

Předmět Autor Datum
pomocou referencii. priklad: [js]pole = new Array(); pole[0] = 4; pole[1] = 5; pole[3] = 6; pole[4]…
IgorK 18.03.2006 18:33
IgorK
OK. Asi si úplně nerozumíme .... ale..... To mi dalo určitý nápad :-D Konverzovat kopii do jednor…
Flash_Gordon 18.03.2006 18:39
Flash_Gordon
ja som ti len pastol priklad, ako sa mazu fyzicky prvky v poli, pretoze si podla predosleho dotazu m…
IgorK 18.03.2006 18:43
IgorK
V předešlém příkladě jsem popisoval funkci splice, kterou jsi mi tady pastnul.
Flash_Gordon 18.03.2006 18:44
Flash_Gordon
aaa, mas pravdu.:i: ja som chcel napisat funkciu slice, nie splice a teraz som nakoniec zistil, ze t… poslední
IgorK 18.03.2006 18:56
IgorK

pomocou referencii. priklad:
[js]pole = new Array();
pole[0] = 4;
pole[1] = 5;
pole[3] = 6;
pole[4] = 7;
temp = pole.splice(1,2); // ziskame referenciu na druhy provok pola
delete temp // zmazeme druhy prvok pola.
alert(pole[1]);[/js]
8-)
//edit : toto nefunguje celkom korektne, pretoze prikazom temp = pole.slice(1,2);(co som chcel povodne napisat a nie splice ako mam v priklade, neziskame referenciu na druhy prvok pola, ale uplne nove pole. 3-[
cize staci len
pole.splice(1,2);
a delete temp je nepotrebne.

Zpět do poradny Odpovědět na původní otázku Nahoru