Autor Zpráva
Zuzka21
Profil *
Zdravím,
mam jeden problém, který se mi nedaří vyřešit.
Mám do javascriptu pomocí php načtené hodnoty - vypadají takto:
osvit=[[1318222647000,0],[1318222948000,1.9],[1318223249000,4.7],[1318223550000,3.7],[1318223851000,2.3],[1318224152000,2.4],...
První je časový údaj a z té druhé potřebuju najít maximum. Zkoušela jsem snad už vše ale nemůžu na to přijít.
Mohl by jste mi někdo poradit jak na to?
díky Zuzka
Kajman_
Profil *
var maximum=null;
for(var i=0;i<osvit.length;i++)
{
    if(maximum===null || osvit[i][1]>maximum[1])
    {
        maximum=osvit[i];
    }
}
if(maximum)
{
    window.alert(maximum[1]);
}
Zuzka21
Profil *
Juj
už to šlape - moc děkuju!!!
1Pupik1989
Profil
Pole bych seřadil a vytáhl první záznam.
Zuzka21
Profil *
Zdravím,
měla bych ještě jeden dotaz. Mám dvě řady hodnot
osvit=[[1318222647000,0],[1318222948000,1.9],[1318223249000,4.7],[1318223550000,3.7],[1318223851000,2.3],[1318224152000,2.4]...
a line1=[[][][]... podobná data. Potřebovala bych je vypsat ale tak aby se mi ty hodnoty času (první údaj) shodovali. Abych na stejným řádku měla hodnotu při stejném času.
Neměl by jste někdo nápad?
Díky
Kajman_
Profil *
Pokud jsou obě pole polí seřazena dle času, tak stačí procháze obě pole zleva doprava tak, že se bere údaj pro výpis z osvitu nebo z line1 podle toho, kde je menší nebo stejný čas.
Zuzka21
Profil *
Okaj díky za radu. Jdu se stím poprat.
_es
Profil
Zuzka21:
Mám do javascriptu pomocí php načtené hodnoty - vypadají takto:
osvit=[[1318222647000,0],[1318222948000,1.9],[1318223249000,4.7],[1318223550000,3.7],[1318223851000,2.3],[1318224152000,2.4],...
První je časový údaj a z té druhé potřebuju najít maximum.
Ak by boli „riadky“ a „stĺpce“ v tej premennej prehodené, teda by to bolo v tvare:
osvit=[[1318222647000,1318222948000,1318223249000,1318223550000,1318223851000,1318224152000,...],[0,1.9,4.7,3.7,2.3,2.4,...]]
tak by sa to maximum dalo zistiť jednoduchým výrazom>
Math.max.apply(null, osvit[1])
Witiko
Profil
Krátké, ale neefektivní:
osvit.sort(function(a, b) {
  return b[1] - a[1];
})[0][1];

Delší, ale efektivnější:
for(var i = 0, l = osvit.length, pole = new Array(l); i !== l; i++)
pole[i] = osvit[i][1]; Math.max.apply(Math, pole);

Nejefektivnější: [#8] _es

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:

0