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.
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]
//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.
cize staci len
pole.splice(1,2);
a delete temp je nepotrebne.
OK.
Asi si úplně nerozumíme .... ale.....
To mi dalo určitý nápad
Konverzovat kopii do jednorozměrného pole prvního prvku a......
V tomto poli zjistit duplicity.... což bude jednodušší než u dvourozměrného.... ?
ja som ti len pastol priklad, ako sa mazu fyzicky prvky v poli, pretoze si podla predosleho dotazu myslim, ze to nevies. priklad si uz musis vyriesit sam, nemam moc casu.
V předešlém příkladě jsem popisoval funkci splice, kterou jsi mi tady pastnul.
aaa, mas pravdu. ja som chcel napisat funkciu slice, nie splice a teraz som nakoniec zistil, ze ten moj priklad, ked zamenim splice->slice ani nefunguje. takze sorry.