- Samsung Galaxy S26 Ultra - fontossági sorrend
- Xiaomi 14 - párátlanul jó lehetne
- Huawei Watch Fit 5 Pro - jó forma
- iPhone topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Szaporodik és sokasodik a One UI 8.5
- Robottal a nyomában üldözi a Honor a Huawei-t
- Samsung Galaxy A54 - türelemjáték
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Teasüti
nagyúr
A
do
{ciklus mag;
i++;}
while (i<50 || másik feltétel)kódrészlet vmiért ugyanúgy végtelen ciklusba fullad, pedig nem kéne neki.
A while feltételénél nem tudok használni logikai operátorokat - and, or?
A kísérlet idejére beraktam egy számlálót is azt remélve, hogy megvéd a végtelen ciklusoktól.
De nem jött be.
Ok, megtaláltam.
&& a megoldás.
-
Teasüti
nagyúr
A
do
{ciklus mag;
i++;}
while (i<50 || másik feltétel)kódrészlet vmiért ugyanúgy végtelen ciklusba fullad, pedig nem kéne neki.
A while feltételénél nem tudok használni logikai operátorokat - and, or?
A kísérlet idejére beraktam egy számlálót is azt remélve, hogy megvéd a végtelen ciklusoktól.
De nem jött be.
-
Teasüti
nagyúr
-
Teasüti
nagyúr
Tegnap hajnalban valszeg jóval felháborodottabbnak tűnő hsz.-t sikerült írnom, mint amilyet akartam, vagy amilyet érdemes lett volna szánnom neked.
Egyrészt késő/korán volt, másrészt számomra furcsa ez az "arra nem akarok válaszolni"-stílus, én ha segítséget kérek, akkor minden hsz.-re reagálok, akár csak egy böffentés erejéig is, nem a saját fáradtságomra hivatkozom, hogy legalább a segítségnyújtó vágja, hogy igen, átjött az üzenet, nem ignoráltam. Nem hinném, hogy "programozói attitűd" a szabadidő hasznos eltöltésének igénye (amúgy ha már kérdezted, nem vagyok "full time programozó"), ennek az általánosító jellegű kifordítása ("mindig olyan nagyra vannak az idejükkel [...] És elefántot csinálnak a bolhából, a konvenciókból") pedig meglehetősen vicces (véleménynyilvánítás a magas lóról, miközben eddig az ellenkezője igazolódott be
), ha ez igaz lenne, akkor nem kaptál volna már annyi segítséget itt a fórumon olyan kérdésekre, amelyeknek te is utánanézhettél volna Google barátod segítségével. Sztem nem konvenció (főleg nem programozói) az, hogy válaszolok a segítségnyújtónak (nem csak magamról beszélek), ez egyszerűen netikett.
De igazad van, tényleg nem volt érdemes így reagálni, felesleges volt az egészet felhozni, egyszerűen mások vagyunk.
Tegnap ezt dobta a gép, sorry. Peace!Hogy valami hasznosat is írjak, a Sublime Text egy igen jó kis szerkesztőprogi a viszonylag kis erőforrás-igényűek közül. Persze ments folyamatosan kódoláskor. (Általában én nem szeretem bekapcsolni, de van autosave funkciója is emlékeim szerint.)
(#3716) Karma :
jogos, a magyarázat fentebb.
A programozói attitűdhöz: van egy-egy ilyen ismerősöm, köztük vérbeli kocka is, aki lehúzott redőnyökkel pijamában éli a magányos életét begubózva - van egy-két furcsasága az életszemléletében szó mi szó.
Van róla minimális fogalmam, milyen értékrendet követnek a programozók.
Aztán ott vannak a mérnökinfós szaktársak is. igaz ott is elég nagy a szórás az oda nem való emberek bulizós életvitelétől a burokban élő kockákig bezáróan.
Szóval itt sem lehet beskatulyázni mindenkit, talán ez a szűkebb réteg és amúgy egészséges családi életet él a többség. Nem fair általánosítani igazad van, de az ilyen heves reakciók erre engedtek következtetni. Elnézést érte!
Ontopic:
jsFiddle nem futtatja le ezt akárhogy próbálkozom, mi lehet a hiba?
Egy tömb string elemének egy karakterére próbálok hivatkozni.
Array[j][0] ami a j elem első karakterét adja vissza.
Ez egészen addig működik, amíg manuálisan írom be a karakter indexét.
De megáll működni, amint változót próbálok használni:
var d = Number(this[i].length);
flash('ok\n' + this[i][d]); //debug kiíratásVagy egyszerűbben:
this[i][this[i].length]
Undefined az eredményem. Nem értem.

Ki tudnátok segíteni? Így hirtelen azt se tudom hogy induljak el Google-n. -
Teasüti
nagyúr
"Arra... nem akarok válaszolni. Fáradt voltam hozzá akkor, és most is."
Aha, elgondolkodtató, hogy akkor a jövőben mennyire fáradjunk mi a neked adott válaszokkal. Hidd el, nekünk is időbe kerül másoknak válaszokat írogatni, nekünk is van munkánk, tanulnivalónk, magánéletünk, azt a pár percet sem kell, hogy rád szánjuk, amit esetleg tudnánk. Könyörgöm, kissé fordítva ülsz a lovon. Te akarsz segítséget, de úgy csinálsz, mintha te tennél szívességet. Sosem értettem az ilyen hozzáállást a fórumokon. Mintha itt valami fizetett segítőgépek ülnének a gép előtt, és egész nap várnák a segítési lehetőséget. Hát nagyon nem."Tasker milyen program? Írtam róla egy cikket. De röviden szólva éppen ezt tudja, amit te is írtál."
Látom sikerült felfogni a kérdés lényegét.
JavaScriptben programozol hozzá, ezzel kapcsolatban, meg a környezettel kérdeztem."És ha nem jsFiddle-szerű helyeken szokás dolgozni, akkor hol?
Ti ajánlottátok nekem, hogy erre való..."
Ne szívassál már... Szerinted mi hol mondtuk, hogy a jsFiddle munkára való?
Segítek, sehol. Arra való, hogy prezentálj demókat másoknak, megosszatok kódokat, meg együtt lehessen segíteni a másiknak abban, hogy egy célfeladatot hogyan lehet megoldani. Van változatkezelője, jól működik, valóban van kódszépítési lehetőség, ezzel a másik munkáját könnyíted meg, adott esetben sajátodat is, ha nincs valami normális programozási környezeted épp, de bakker, nem arra való, hogy a napi munkádat ott végezd.
A JSBin egyébként elég gyakran ment, ha már...
Egyébként nem azt mondtad, hogy más nyelvekben már programoztál? Akkor eddig hogyan?JavaScriptben programozol hozzá, ezzel kapcsolatban, meg a környezettel kérdeztem.
Fingom sincs. Csak kontárkodok benne.
De hogy mitől működik... Kézikönyvben nem esik szó a környezetről.
Egy-egy Android java referencia van hozzá, de sztem azok beemelt feature-ök. Vagy talán Android javascript interface - vagy ilyesmi.Eddig minden alkalommal megköszöntem a segítséget, ennél többet nem ajánlhatok fel. Nem kötelező válaszolnod, ha úgy látod jónak. Fura amúgy ez a programozói attitűd, már ha full time programozó vagy. Mindig olyan nagyra vannak az idejükkel - persze vhol jogosan, hisz ebből élnek. És elefántot csinálnak a bolhából, a konvenciókból.
De mindegy, itt én vagyok a vendég. A válaszod célt ért, ezt külön megköszönöm még egyszer. Nem érzem szükségességét tételesen reagálni rá. Az egy befejezett téma részemről.
Nem is értem miért van szükség magyarázkodásra.Amúgy tisztában vagyok a fórumos segítségnyújtás fogalmával, egy egész topikot én vezetek.

Most hozakodjak elő én is a magánéletemmel?Jah, amúgy nem. Nem programoztam ezelőtt egy nyelven sem. Középiskolás Pascal nyilván szánalmas példa lenne, ezért az nem is számít.
-
Teasüti
nagyúr
Valószínűleg szopóálarc. Nem szokás ilyen helyen dolgozni.
Amúgy ha válaszolnak neked, illik reagálni. ![;]](//cdn.rios.hu/dl/s/v1.gif)
Én is erre jutottam.

Arra... nem akarok válaszolni. Fáradt voltam hozzá akkor, és most is.
Levontam belőle a tanulságot azért, köszi!
Tasker milyen program? Írtam róla egy cikket. De röviden szólva éppen ezt tudja, amit te is írtál.És ha nem jsFiddle-szerű helyeken szokás dolgozni, akkor hol?
Ti ajánlottátok nekem, hogy erre való...
Amúgy tetszik, elégedett vagyok vele. Mindig Karma lapjait szerkesztem, ahol elő van készítve a pálya.
Tud indentálni, meg validálni is. Kell nekem ennél több? -
Teasüti
nagyúr
jsFiddle-n belefutottam egy végtelen ciklusba. A böngészőm bezárta az ablakot. Azóta újra se tudom tölteni azt a linket. Mivel nem vagyok regisztrálva az oldalon, ezért gondolom minden munkám elveszett, ugye?
-
Teasüti
nagyúr
Sziasztok!
Megint én.
XMLHttpRequest használatával egy HTML weblap letöltésének és parse feldolgozásának mi a módja plain JS kódban?
Ez alapján próbáltam elindulni, de a .title property-nél már hibát dob. Vmint a "this"-t se értem, hogy az mi akar itt lenni.
-
Teasüti
nagyúr
"Nem, nem "indentálok"."
Gondolom ez csak irónia volt.
Ha a Prohardveren beszúrsz egy kódot, akkor jelöld ki, és kattints a "Programkód" gombra, ne pedig simán a Monospace-re. Akkor megmarad indentálva. Ezeket a dolgokat tényleg el kell magyarázni? 
"Néztem a jsFiddle-t, de nem tudom használni (próbáltam átírni te példáidat is, de a result panelra nem tudok írni... más debug kiíratás sem ment.)."
Őőő, megvan, mi az a "result" szó, mit is jelent? Ne oda akarj írni, hanem pl. a HTML-, JS- vagy CSS-panelra...
Nyilván a JavaScript-kódok a JavaScript-panelra mennek, remélem, ezt nem kell elmagyarázni, miért. ![;]](//cdn.rios.hu/dl/s/v1.gif)
A jsFiddle-nél pedig a TidyUp gomb szolgálja azt a célt, hogy a kódod szebb legyen, mindegyik panelban szépíti."Próbáltam a böngésző konzolját is, de az se túl felhasználóbarát."
Miért is kellene, hogy felhasználóbarát legyen? Nem az a dolga."Inkább marad a natív környezet."
Milyen natív környezetről beszélsz?"Eddig még nem szúrtam el a zárójelezést egyszer sem.
"
Botrány. Ezek a mai fiatalok...
Majd el fogod. Amúgy nem értem, ez a zárójelezős téma hogy jött ide, amikor Karma tanácsokat adott a tömbhasználathoz és az algoritmusodhoz... ![;]](//cdn.rios.hu/dl/s/v1.gif)
Amúgy meglehetősen gány, amit csinálsz, ez az összefűzögetős valami (annyira nem próbáltam meg értelmezni). Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
"a meghívott function()-ökben deklarált változók ugye elszeparáltak a programtól?"
Ez így elég rossz megfogalmazás, lokális változóknak hívják, amikről beszélsz, var kulcsszóval kell deklarálni őket JavaScriptben. Ha nincs var kulcsszó, akkor felmerülhet a probléma, hogy az adott függvényben esetleg globális változót felülírsz vele, aminek pontosan ugyanez a neve, és elérhető az adott scope-ból. Ha referenciákra vagy kíváncsi, kapcsolódó téma:
http://stackoverflow.com/questions/7744611/pass-variables-by-reference-in-javascript/7744623#7744623
http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language
http://stackoverflow.com/questions/13104494/does-javascript-pass-by-reference
csak hogy ne nekem kelljen elmagyarázni.
Egyébként más esetben a függvényeid nem fognak tudni egymás lokális változóiról.Amúgy meglehetősen gány, amit csinálsz, ez az összefűzögetős valami (annyira nem próbáltam meg értelmezni). Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
Feladat:
kellenek egy tömb - nem nulla - elemeinek indexei, de az elemek (számok) csökkenő sorrendjében.
Vagyis ki kell gyűjteni nem csak a legnagyobb elem indexét (haha rém egyszerű lenne egy közönséges Array.indexOf(Math.max()) függvénnyel, de az indexOf() megáll az első találatnál, szóval nem jó - kellenek a lehetséges alternatívák), hanem sorban az összeset.
Hogy fognál hozzá?
-
Teasüti
nagyúr
"Nem, nem "indentálok"."
Gondolom ez csak irónia volt.
Ha a Prohardveren beszúrsz egy kódot, akkor jelöld ki, és kattints a "Programkód" gombra, ne pedig simán a Monospace-re. Akkor megmarad indentálva. Ezeket a dolgokat tényleg el kell magyarázni? 
"Néztem a jsFiddle-t, de nem tudom használni (próbáltam átírni te példáidat is, de a result panelra nem tudok írni... más debug kiíratás sem ment.)."
Őőő, megvan, mi az a "result" szó, mit is jelent? Ne oda akarj írni, hanem pl. a HTML-, JS- vagy CSS-panelra...
Nyilván a JavaScript-kódok a JavaScript-panelra mennek, remélem, ezt nem kell elmagyarázni, miért. ![;]](//cdn.rios.hu/dl/s/v1.gif)
A jsFiddle-nél pedig a TidyUp gomb szolgálja azt a célt, hogy a kódod szebb legyen, mindegyik panelban szépíti."Próbáltam a böngésző konzolját is, de az se túl felhasználóbarát."
Miért is kellene, hogy felhasználóbarát legyen? Nem az a dolga."Inkább marad a natív környezet."
Milyen natív környezetről beszélsz?"Eddig még nem szúrtam el a zárójelezést egyszer sem.
"
Botrány. Ezek a mai fiatalok...
Majd el fogod. Amúgy nem értem, ez a zárójelezős téma hogy jött ide, amikor Karma tanácsokat adott a tömbhasználathoz és az algoritmusodhoz... ![;]](//cdn.rios.hu/dl/s/v1.gif)
Amúgy meglehetősen gány, amit csinálsz, ez az összefűzögetős valami (annyira nem próbáltam meg értelmezni). Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
"a meghívott function()-ökben deklarált változók ugye elszeparáltak a programtól?"
Ez így elég rossz megfogalmazás, lokális változóknak hívják, amikről beszélsz, var kulcsszóval kell deklarálni őket JavaScriptben. Ha nincs var kulcsszó, akkor felmerülhet a probléma, hogy az adott függvényben esetleg globális változót felülírsz vele, aminek pontosan ugyanez a neve, és elérhető az adott scope-ból. Ha referenciákra vagy kíváncsi, kapcsolódó téma:
http://stackoverflow.com/questions/7744611/pass-variables-by-reference-in-javascript/7744623#7744623
http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language
http://stackoverflow.com/questions/13104494/does-javascript-pass-by-reference
csak hogy ne nekem kelljen elmagyarázni.
Egyébként más esetben a függvényeid nem fognak tudni egymás lokális változóiról.Ha a Prohardveren beszúrsz egy kódot, akkor jelöld ki, és kattints a "Programkód" gombra, ne pedig simán a Monospace-re. Akkor megmarad indentálva.
Nem irónia, tényleg így néz ki a kód.Őőő, megvan, mi az a "result" szó, mit is jelent? Ne oda akarj írni, hanem pl. a HTML-, JS- vagy CSS-panelra...
[link] Itt is a result panelen van az eredmény.
Ezt így ahogy van másoltam a HTML kóddal együtt, de nekem nem működött a pre.innerHTML sor (ugye az küldi a result-ra a kimenetet?).Milyen natív környezetről beszélsz?
A telefont, ami végső soron a program fog futni.Amúgy nem értem, ez a zárójelezős téma hogy jött ide.
A fenti kód olvashatósága... az indentálás kapcsán.
Hogy én még nem zavarodtam bele.
Gondolom legalábbis, hogy ez miatt nehéz olvasni.Nem tudom, most hány elemmel kísérletezel, de amikor mondjuk lesz 1000 név a telefonkönyvben, amiből szűrni kell az általad mutatott módon, akkor nem biztos, hogy azonnal végezni fog vele például egy gyengébb procival rendelkező teló...
Igaz nálam csak olyan ~50 név lehet, de a telefonom elég gyenge, vagy 4 éves modell.
Nem hinném, hogy a mai 1+ ghz-es telefonoknak ez gondot okozhatna.Az utolsóra:
function akármi(izé) {
var "ez meg az";
return("ez meg az");
}
var "ez meg az" = function(izé);Na ez így jó vagy rossz?

Asszem ugyanez érvényes az Array.prototype-ra is, azt is a program elejébe illesztem be és nem tudom a benne hazsnált változók össze akadhatnak-e a program többi változójával.
Értsd: a function()-ben lévő változók "lokálisabbak-e", mint a programban lévők?
De mindjárt olvasom a linkeket... -
Teasüti
nagyúr
Remélem a tényleges kódban indentálsz, és csak a fórummotor miatt ilyen olvashatatlan... Emiatt (is) egy kicsit nehéz megítélni, hogy nem-e futsz túl hosszú köröket a probléma körül spirálban.
Például a kettővel ezelőtti kérdésnél nem értettem, hogy miért használsz push-t a tömbre - JavaScriptben a [] operátorral akármilyen indexnek tudsz értéket adni, nem kell kézzel növelgetni.
Meg amúgy az alapprobléma is olyan, hogy lehetnek rá kész algoritmusok. Maga a stringtávolság témakörben ott a Levenshtein távolság, bár telefonszámokhoz lehet overkill. Mondjuk regexelni is szinte biztosan (bár nem látom tisztán hogy hol jön a képbe).
Nem, nem "indentálok".
Én olyan kemény vagyok, hogy még mindig a telefonon pötyögöm be a kódot, amin a szerkesztő nem tud tördelni.![;]](//cdn.rios.hu/dl/s/v1.gif)
Néztem a jsFiddle-t, de nem tudom használni (próbáltam átírni te példáidat is, de a result panelra nem tudok írni... más debug kiíratás sem ment.). Próbáltam a böngésző konzolját is, de az se túl felhasználóbarát.Inkább marad a natív környezet. Eddig még nem szúrtam el a zárójelezést egyszer sem.

Lássuk csak... Úgy működik, hogy először kigyűjti az "a" tömbbe az összes nullánál nagyobb számot és a "b" tömbben tárolja az előfordulások számát.
Majd lemásolja az input-ot, hogy az érintetlen maradjon és az "a" tömb hossza szerinti ciklusban meghívja a "b" előfordulások száma szerinti másik ciklust és a ciklusmagban meg megkeresi a kigyűjtött elemek indexeit az input-ból és berakja a "c" tömbbe. Mivel itt a Math.max függvényt használom masszívan, ezért jónak láttam nullázni az aktuális mentett elemet, hogy a következő előfordulást találhassa meg a függvény.
A "c" tömböt a beágyazott ciklus lefutása után minden menetben üríti az output string-be.Kb ennyi.
Biztos hatékonyabban is meg lehet oldani, meg kevesebb erőforrással, de nem vagyok programozó, meg amúgy is egy szempillantás alatt végez még a telefon is.Kérdés:
a meghívott function()-ökben deklarált változók ugye elszeparáltak a programtól?
Tehát a function()-ön belüli "var i=0" nem fog összeakadni abban a programban lévő változattal, amiben meghívtam a függvényt? (Abban a programban definiáltam a function()-t is.) -
Teasüti
nagyúr
Ezt hoztam össze:
Array.prototype.indexesOfGreatestNums = function () {
var result = new String, a = new Array, b = new Array; c = new Array;
a[0] = 0, b[0] = 0;
for (var i =0, j=0; i<this.length;i++) {
if (this[i]>0) {
if (a.indexOf(this[i].toString())>=0) {if (b[a.indexOf(this[i].toString())] !== undefined) {b[a.indexOf(this[i].toString())]++} else {b[a.indexOf(this[i].toString())]=1;};} else {
a[j] = this[i];
if (b[j] !== undefined) {b[j]++} else {b[j] = 1};
j++;
}; //end else
}; // end if
}; // end for
//var ok = popup('',a + '\n' + b,false,'','',30);
var that = this.slice(0);
for (i=0;i<a.length;i++) {
for (j=0;j<b[a.indexOf(Math.max.apply('',a).toString())];j++) {
//flash(that.join() +'\n'+ a.join());
c[j] = that.indexOf(Math.max.apply('',a).toString());
that[that.indexOf(Math.max.apply('',a).toString())] = 0;
}; //end for
result = result + c.join() + '>';
c = [];
a[a.indexOf(Math.max.apply('',a).toString())] = 0;
}; // end for
return(result);
}; // end prototypeAzt tudja, hogy egy számokból álló tömbből egy string-ben visszaadja az elemek értékei alapján csökkenő sorrendben az indexüket.
Azonos értékek indexei vesszővel elválasztva, különbözőké pedig ">" jellel. NaN elemekre nem érzékeny, ha meg az egész tömb csak nullákból áll, akkor meg csak egy ">" jelet ad vissza.Pl:
var a = [0,0,1,1,5,12,5,0,0];
var b = a.indexesOfGreatestNums();
b = "5>4,6>2,3>"Ezzel szeretném kiértékelni majd a telefonkönyves regex keresés eredményét, ahol a találatok számát mentem a fenti "a" tömbbe, amiben az indexek megegyeznek a névjegyzék tömbjével.
Jah és ez az egész macera azért, mert az Array.indexOf() csak az első elemet dobja vissza, és nincs egy jó kereső metódus a natív Array() objektumban, így csináltam egyet magamnak.
(Gondolom ha majd vmikor elkezdtem használni vmelyik könyvtárat, akkor a homlokomhoz fogok csapni előbb-utóbb...) -
Teasüti
nagyúr
Ezt hoztam össze:
Array.prototype.indexesOfGreatestNums = function () {
var result = new String, a = new Array, b = new Array; c = new Array;
a[0] = 0, b[0] = 0;
for (var i =0, j=0; i<this.length;i++) {
if (this[i]>0) {
if (a.indexOf(this[i].toString())>=0) {if (b[a.indexOf(this[i].toString())] !== undefined) {b[a.indexOf(this[i].toString())]++} else {b[a.indexOf(this[i].toString())]=1;};} else {
a[j] = this[i];
if (b[j] !== undefined) {b[j]++} else {b[j] = 1};
j++;
}; //end else
}; // end if
}; // end for
//var ok = popup('',a + '\n' + b,false,'','',30);
var that = this.slice(0);
for (i=0;i<a.length;i++) {
for (j=0;j<b[a.indexOf(Math.max.apply('',a).toString())];j++) {
//flash(that.join() +'\n'+ a.join());
c[j] = that.indexOf(Math.max.apply('',a).toString());
that[that.indexOf(Math.max.apply('',a).toString())] = 0;
}; //end for
result = result + c.join() + '>';
c = [];
a[a.indexOf(Math.max.apply('',a).toString())] = 0;
}; // end for
return(result);
}; // end prototypeAzt tudja, hogy egy számokból álló tömbből egy string-ben visszaadja az elemek értékei alapján csökkenő sorrendben az indexüket.
Azonos értékek indexei vesszővel elválasztva, különbözőké pedig ">" jellel. NaN elemekre nem érzékeny, ha meg az egész tömb csak nullákból áll, akkor meg csak egy ">" jelet ad vissza.Pl:
var a = [0,0,1,1,5,12,5,0,0];
var b = a.indexesOfGreatestNums();
b = "5>4,6>2,3>"Ezzel szeretném kiértékelni majd a telefonkönyves regex keresés eredményét, ahol a találatok számát mentem a fenti "a" tömbbe, amiben az indexek megegyeznek a névjegyzék tömbjével.
-
Teasüti
nagyúr
Technikai segítség!!

Hogy tudnék egy tömb adott sorszámú eleméhez hozzáadni egyet, ha még nincs deklarálva az adott elem?
Csak számokkal dolgozok itt:var a = new Array;
for (var i=0, j=0;i<this.length;i++) {
if (this[i]>0) {a[j]++; j++};
};Az értelme most nem érdekes, csak egy péda.
Az az érdekes, hogy az undefined elemekhez nem tudok hozzáadni egyet, viszont nem definiálhatom le előre, mert nem tudom mekkora lesz a tömb.
Undefined helyett arra lenne szükségem, hogy alapértelmezésben nulla legyen minden újabb elem az "a" tömbben.
Vagy legalábbis tudjam növelni az értékét (nem jó az a[j]=1; ).
szerk:
hmm, ha jól sejtem, akkor nem úszom meg az elemek előzetes vizsgálata nélkül:if (a[j] == 'undefined') {a.push(1)} else {a[j]++};
-
Teasüti
nagyúr
Technikai segítség!!

Hogy tudnék egy tömb adott sorszámú eleméhez hozzáadni egyet, ha még nincs deklarálva az adott elem?
Csak számokkal dolgozok itt:var a = new Array;
for (var i=0, j=0;i<this.length;i++) {
if (this[i]>0) {a[j]++; j++};
};Az értelme most nem érdekes, csak egy péda.
Az az érdekes, hogy az undefined elemekhez nem tudok hozzáadni egyet, viszont nem definiálhatom le előre, mert nem tudom mekkora lesz a tömb.
Undefined helyett arra lenne szükségem, hogy alapértelmezésben nulla legyen minden újabb elem az "a" tömbben.
Vagy legalábbis tudjam növelni az értékét (nem jó az a[j]=1; ).
-
Teasüti
nagyúr
Őőő algoritmus írásban is kérhetek segítséget?
Egy string tömböt szeretnék keresni egy másik string tömbben és azokat a találatokat kidobatni, amire a legtöbb az egyezés.
Az input egy karakterlánc, amiben vhol van egy név, de lehetnek nem releváns szavak is (Speech-to-Text és telefonkönyv keresés). Az inputot feldarabolom szavakra, majd ezeket a szavakat egyenként lefuttatom regex kereséssel a névjegyzéken (amit szintén egy tömbben helyeztem el, egy rekord egy teljes név).
És a találati arányból kellene kidobni a legvalószínűbb egyezést.
Tehát mondjuk az input vmi ilyesmi: "Hívd fel Gipsz Jakabot!"
A ragozásra is kitaláltam egy alprogramot, ami az utolsó karaktereket vagdossa le - magánhangzó esetén először az ékezetet -, majd újra az egész.
És eredményül a "Gipsz Jakab" rekordot szeretném kapni, mert az input 4 kifejezéséből 50%-os találatom van erre a rekordra (míg mondjuk a "Agyag Jakab" esetén csak 25%-os az egyezés).A kódolás talán menni fog (bár még nem állt össze miként fogok ezen végigmenni, vmi iteratív módszeren töprengek), de a kérdésem az lenne, hogy ez így életképes megoldásnak tűnik?

Illetve ami nekem nagy kérdőjel az a statisztika felállítása. Hogy tudnám kiértékelni a keresések eredményét?
Mert nagyon könnyen előfordulhat, hogy több találatom is lesz és ezekből automatikusan a legvalószínűbbet kellene választani. -
Teasüti
nagyúr
RSS? És csodálkozol, hogy az nem JSON?
Olvasnivaló.Hát jah, RSS vagy webservice API nekem egyre megy az én szintemen.

A lényeg, hogy kicsi kompakt és könnyen feldolgozható adatot kell csak letölteni.
-
Teasüti
nagyúr
"Elég kevés a JSON, jellemzően eddig csak Google API-k esetén találkoztam vele."
Hogy érted azt, hogy "kevés a JSON"? Csak mert meglehetősen népszerű formátum, aminek lehet örülni.
"XML-t népszerűbbnek találom azok kevés webservice közt, amikhez szerencsém volt eddig."
Az XML valóban a legnépszerűbb volt ilyen tekintetben régen, mostanra ez már nem igaz. A JSON-formátum ma már meglehetősen elterjedt, például REST API-nál (is) nagyon jellemző.
Amúgy meg amiatt, hogy XML-lel többször találkoztál, miért szívatod magadat a nehézkesebb kezelésével, ha nem muszáj?
Főleg, ha egyiknek a kezelését sem sajátítottad el még olyan szinten. Karmával már ketten is mutattunk példát rá, hogy jelen esetben mennyivel egyszerűbb dolgod lenne a JSON-formátum használatával.Azt viszont jó ötletnek tartom, hogy először a plain JavaScripttel akarsz megismerkedni, és csak utána a jQuery-vel, hidd el, meg fog térülni, úgyhogy ebben bölcsen döntöttél.
Szerk.: most látom, hogy már kitárgyalták a többiek is az XML vs. JSON-témát, a későbbiek olvasása nélkül reagáltam egyből, sorry.
Már megtértem a JSON-t illetően.
Google API-kon kívül még nem találkoztam ezzel a formátummal.
Most épp az időjárás rss szolgáltatással bíró oldalak keresgélése van terítéken, de hírből sem találkoztam még JSON-nal ezen a területen. -
Teasüti
nagyúr
Akkor amire eddig rájöttem:
- a Date() objektum a helyi időt adja vissza, viszont a Date().getTime() már figyelmen kívül hagyja az offset-et és UTC időt ad,
- a new Date(időbélyeg) ha jól értem, akkor a megadott időre készíti az objektumot,de hozzá kalkulálja a helyi eltérést,
Ezekből a következtetésem, hogy a helyes eljárás a következő:
- a webservice UTC Unix időbélyeget kér és a new Date().getTime()-ot fogom átadni neki (osztva ezerrel),
- a válaszból kinyert offset adott településre vonatkozóan (London, Anglia) pedig úgy lesz helyesen megjelenítve, ha a válasszal korrigált időbélyeghez még hozzáveszem a getTimezoneOffset() értékét és berakom egy new Date() objektumba - mivel a Date() a helyi időzóna szerint eltolja a megjelenített időt.
Így remélhetőleg tényleg azt számolom, amit szeretnék. -
Teasüti
nagyúr
Azt hiszem az eredmény olvasható formába alakításával lesznek problémák.
Időbélyeget nem a Date(időbélyeg) paranccsal lehet visszaalakítani olvasható formába?
Mert UTC időbélyeg ide-vagy oda, nekem már a helyi időzónában jeleníti meg.
W3Schhool editoron is a helyi időzónában mutatja a Date() parancs attól függetlenül, hogy adtam-e neki paramétert, vagy sem.Akkor viszont nem tudom értelmezni miről akar magyarázni ez az oldal az elején a négy módról.

És akkor azt sem értem a fenti kódsor miért adja vissza a helyes eredményt mégis, ha a time változó végső értéke egy új Date() objektum lesz, ami meg ezek szerint a helyi aktuális időt adja. -
Teasüti
nagyúr
getTimezoneOffset() a "The difference, in minutes, between UTC and local time."
Vagyis GMT+2 zónában -120 eredményt ad, amit szintén összeadással korrigálom a getTime()-ot.Ezt a kódot futtatom, ami ebben a formában jó eredményt ad:
var localtime = Math.floor(new Date().getTime() / 1000);
var localoffset = new Date().getTimezoneOffset() * 60;
time = localtime + localoffset;
//flashLong(time + ' = ' + localtime + localoffset);
var http =new XMLHttpRequest();
http.onreadystatechange = function () {
if (http.readyState==4) {
var json = JSON.parse(http.responseText);
var offset = (json.dstOffset + json.rawOffset);
time = time + offset;
time = new Date(time*1000); //sec to millisec
say(city + ' területén a ' + json.timeZoneName + ' szerint jelenleg ' + time.getHours() + ' óra ' + time.getMinutes()+ ' perc van.','com.svox.classic','hun-HUN','media',5,5); //Adott város területén a valamilyen időzóna szerint xx óra yy perc van.Összehasonlítottam magam is a Tasker JS getTime() metódust ezzel, és tényleg UTC eredményt ad.
Legalábbis e szerint.Na most akkor hol a hiba?

A London, Anglia példában a magyar időhöz képest mégse kaptam jó eredményt önmagában a Date().getTime() paranccsal.
Jelenleg meg ugye -7200 másodperc a request előtt, majd +3600 a válasz után és így adja vissza a helyes 11:50-et (ha itthon 12:50 van). -
Teasüti
nagyúr
Márpedig valamit biztosan rosszul számolsz. Írtam egy fiddle-t, kipróbáltam több időzónára állítva a gépemet (persze mindig újraindítva a Chrome-ot), és a timestamp mindig ugyanazt az eredményt adja vissza. A timezoneOffset változik - ami egyébként a mi időzónánkban negatív, azaz adja magát, hogy kivonni kell a mi zónánk idejéhez.
Az epoch idő konverziót meg itt ellenőriztem. És nekem végig jók lettek a számok.
Namost a Google Timezone API-t nem ismerem, arról nem tudok nyilatkozni, de megvizslatom mindjárt

getTimezoneOffset() a "The difference, in minutes, between UTC and local time."
Vagyis GMT+2 zónában -120 eredményt ad, amit szintén összeadással korrigálom a getTime()-ot.Ezt a kódot futtatom, ami ebben a formában jó eredményt ad:
var localtime = Math.floor(new Date().getTime() / 1000);
var localoffset = new Date().getTimezoneOffset() * 60;
time = localtime + localoffset;
//flashLong(time + ' = ' + localtime + localoffset);
var http =new XMLHttpRequest();
http.onreadystatechange = function () {
if (http.readyState==4) {
var json = JSON.parse(http.responseText);
var offset = (json.dstOffset + json.rawOffset);
time = time + offset;
time = new Date(time*1000); //sec to millisec
say(city + ' területén a ' + json.timeZoneName + ' szerint jelenleg ' + time.getHours() + ' óra ' + time.getMinutes()+ ' perc van.','com.svox.classic','hun-HUN','media',5,5); //Adott város területén a valamilyen időzóna szerint xx óra yy perc van. -
Teasüti
nagyúr
Satckoverflow-on is mindenki ezt hajtogatja, de én sem így tapasztaltam.
Ha Match.floor(new Date().getTime() /1000) paranccsal készítek időbélyeget (Ugye Magyarország jeleleg GMT+2) a Google Timezone API-hoz (London, Anglia a kérdés - ami ugye GMT+1 a DST miatt), akkor a válaszban kapott offset-eket hozzáadva az elküldött időbélyeghez egy órával a helyi időnél többet kapok.
És jól kezeltem az offset-eket, Google dokumentáció szerint csak egyszerűen össze kell adni mindent.Viszont ha a getTime()-ból kapott bélyeget korrigálom a getTimezoneOffset()-el, akkor kapok helyes választ.

Forrás.
Illetve W3School-on a Date() referenciában sincs feltüntetve a getTime() metódusnál az UTC.Amúgy tényleg qrva jó ez a JSON, két egyszerű mondattal elintéztem azt (amiből az egyik a parse), amit XML-nél úgy kellett összeollózni több parancsból.

Nem csak W3School referenciája hibás ezek szerint. Itt sincs szó UTC-ről a getTime() esetében.
-
Teasüti
nagyúr
Satckoverflow-on is mindenki ezt hajtogatja, de én sem így tapasztaltam.
Ha Match.floor(new Date().getTime() /1000) paranccsal készítek időbélyeget (Ugye Magyarország jeleleg GMT+2) a Google Timezone API-hoz (London, Anglia a kérdés - ami ugye GMT+1 a DST miatt), akkor a válaszban kapott offset-eket hozzáadva az elküldött időbélyeghez egy órával a helyi időnél többet kapok.
És jól kezeltem az offset-eket, Google dokumentáció szerint csak egyszerűen össze kell adni mindent.Viszont ha a getTime()-ból kapott bélyeget korrigálom a getTimezoneOffset()-el, akkor kapok helyes választ.

Forrás.
Illetve W3School-on a Date() referenciában sincs feltüntetve a getTime() metódusnál az UTC.Amúgy tényleg qrva jó ez a JSON, két egyszerű mondattal elintéztem azt (amiből az egyik a parse), amit XML-nél úgy kellett összeollózni több parancsból.

-
Teasüti
nagyúr
var d = new Date();
var date = Date.UTC(d.getFullYear(),d.getMonth(),d.getDate());
//a hónap 0-11 formában vanNem próbálkoztam meg újra begépelni az UTC() metódust másodpercekig terjedően, így most a getTimezoneOffset()-et használom, amit hozzáadok a helyi időhöz.
Nem tudom mennyire bolondbiztos, illetve működik-e a világ bármely pontján (jobban mondva a telefon miként követi az időzónákat), de egyelőre megteszi.
Köszi a választ!
-
Teasüti
nagyúr
Hogy tudnék összerakni ezekből egy UTC időbélyeget másodpercekben?

new Date().getTime() //a helyi időt adja vissza;
Date.UTC() //ezt meg fel kell tölteni adatokkal, de fogalmam sincs, hogy vajon a helyi időt adjam át neki? Próbáltam a getUTCxxx elemekkel - elég sokáig tartott bepötyögni -, de NaN-t kaptam csak. -
Teasüti
nagyúr
-
Teasüti
nagyúr
Nem jó a nodeValue, mert a koordináta nem az lng element értéke, hanem van neki egy text node gyereke. Ha az lng-ig eljutottál, használd a textContent mezőt, és nem kell kibogarásznod ezt a szintet.
Egyszerűen egyébként sok getElementsByTagName hívással tudod pontosan megkeresni azt aki neked kell (így elkerülöd azt, hogy ha nincs whitespace a válaszban, összetörik a parsered) - de igazából sokkal jobb lenne áttérni a JSON formátumra. Most már sejtheted, hogy miért.
(Összehasonlításképp: res.results[0].geomerty.location.lng a JSON objektumból kivenni ugyanezt.)
Egyébként itt egy fiddle amivel ezt kísérleteztem. Egyszerűbb mint telefonon

Elég kevés a JSON, jellemzően eddig csak Google API-k esetén találkoztam vele.
XML-t népszerűbbnek találom azok kevés webservice közt, amikhez szerencsém volt eddig.Nem egészen értem hogy kellene összefűznöm több getElementsByTagName hívást.
Ezzel csak gyerekek nélküli tag-et tudok lekérni, amint képbe került egy-egy alsóbb szint, úgy a hívás már nem működik még a 0 sorszámokkal sem a tömbben.Fiddle: csalás, itt te már jQuery-t használsz, ha jól sejtem!

Egyelőre még hanyagolom a library-k használatát, azon egyszerű okból, hogy a natív JS kóddal se barátkoztam még meg igazán. Meg a jQuery is egy tekintélyes tananyag W3School-on JS után, szóval nem is látom még a fától az erdőt.
De köszi az oldalt, remélem pont azt tudja, mint a Tasker környezet!
Meg az XML kezelését is el szeretném sajátítani, tekintve, hogy azok vannak többségben.
...talán vmi programozói attitűd maradványa, hogy először a nehezebb úton akarok menni, mielőtt megismerem a módját hogy lehet egy huszárvágással elintézni ugyanazt.
-
Teasüti
nagyúr

XML getElements-ben kérnék megint segítséget.
W3School példák (bookstore) alapján azt hittem az xmlDoc.getElementsByTagName('név')[0].childNodes[0].nodeValue paranccsal megkaphatom az értékét adott sorszámú izé, node-nak.
Úgy értelmeztem, hogy a childNode[0].nodeValue, ami ha a Tag csak egy karakterláncból áll, akkor visszaadja, ami a <tag></tag> között van. És childNodes[1].nodeValue esetén már azt adja vissza, ami itt van: <tag><első elem></első elem></tag>. (Majd a childNodes[3] adja vissza a második elemet, stb. Illetve úgy értelmeztem, hogy a childNodes[2] meg az első elem utáni - és így tovább - karakterláncot adná vissza tag-estül mindenestül.)De undefined az eredményem.

Szóval a primitív tag-eket le tudom kérni, de hogy kell hivatkozni a struktúrált adatokra, mint az alábbi példában?
<location>
<lat>szélességi fok</lat>
<lng>hosszúsági fok</lng>
</location>
Itt a "location" tag-re szeretnék hivatkozni, mert az az egyedi, lat és lng többször is előfordul a táblázatban.Így próbáltam először:
var loc = xmlDoc.getElementsByTagName('location')[0].childNodes[1].nodevalue + ',' + xmlDoc.getElementsByTagName('Location')[0].childNodes[3].nodeValue
Persze sikertelenül. Egyesével se ad vissza semmit semmilyen childNode sorszámmal.
-
Teasüti
nagyúr
Ez esetben technikailag akkor nem változót hozok létre?
Pl. xmlDoc előtt még egy példában sem láttam var utasítást.
Bár elé rakva így is működik.Eddig úgy csináltam a letöltést, hogy:
function get(url) {
var http = new XMLHttpRequest();
http.open("GET",url,false);
http.send();
return(http.responseXML);
}Majd
kódsor, blahblahbla...
var data = get(url); //http.open(false) esetén gyakorlatilag megvárja a JS a választ, mielőtt tovább haladna a sorban.
//XML parse
egyéb kódok, blah blah...
data = get(másik url);
és így tovább, blahblahblah...Szóval ez így közel sem ideális?

Tudom nem kezeli a sikeres letöltésen kívül egyik másik esetet sem jelenleg.
De ezt tényleg csak úgy tudom elérni, hogy az onreadystatechange = function() {ide bezsúfolom a program teljes hátralévő részét?? :F }Vagy esetleg csak ami a response kezeléséhez kell, aztán kiugrok a send() mögé?
-
Teasüti
nagyúr
Köszönöm, kicsit döcögősen, de az XML-ből már ki tudok nyerni adatot a .getElementsByTagName().childNodes[0].nodeValue paranccsal. JSON-nal még nem volt időm foglalkozni. Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Ami még zavaros nekem, azok a deklarációknál lévő new kifejezések.
Erről kaphatnék egy kis magyarázatot?
Pl. var x = new String.
Vagy xhttp = new XMLHttpRequest().
Vagy reg = new RegExp() (amit eddig csak egyszerűen karakterláncként hoztam létre két "/" között).Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Nem aktuális. -
Teasüti
nagyúr
"És JSON formátumot is fel tudok dolgozni XML objektumként?"
Nem jó a kérdés, JSON-formátumot annak megfelelő formában is kell feldolgozni.
Kell hozzá általában egy JSON.parse() (+[link]), lásd alább.
Nagy előnye, hogy nagyon kényelmes is feldolgozni (ha a natív JSON-támogatás adott (ha nem, akkor külső könyvtár vagy más megoldás kell))."megzavart, hogy én itt XMLHttp-vel dolgozom"
Nem csodálom, de ne zavarjon meg.Az előzőek alapján írtam neked egy nagyon egyszerű példakódot, nyisd meg a böngésződ fejlesztőpanelét (F12-vel), kattints a Console fülre, majd egyszerűen másold be ezt a kódot, és nyomj egy Entert, hogy lásd, mit csinál:
// https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started
var loc = "40.714224,-73.961452"; // csak példa
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var responseText = httpRequest.responseText;
var responseTextInJSON = window.JSON.parse(httpRequest.responseText);
if(responseTextInJSON.status === "OK"){
var results = responseTextInJSON.results;
for(var i = 0; i<results.length; i++) {
var addr = results[i].formatted_address;
console.log("formatted address: ", addr);
// további eredmények...
}
}
else {
// valami gáz van, kezeld le a hibát
}
} else {
// para van
alert('There was a problem with the request.');
}
}
};
var url = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true";
// inkább JSON-formátum
url = "https://maps.googleapis.com/maps/api/geocode/json?latlng="+loc+"&sensor=true";
var isAsynchronous = true; // változtasd meg, attól függően, hogy aszinkron kérést szeretnél, vagy sem
httpRequest.open("GET", url, isAsynchronous);
httpRequest.send();Így elég egyszerűen fel lehetett dolgozni az eredményeket, amiket JSON-formátumban kaptál.
Arra mi a bevett gyakorlat, ha nem akarom beágyazni a request utáni kódot az onreadystatechange függvénybe, hanem szisztematikusan szeretnék haladni tovább a sorban? (Több egymás utáni lekérésem van, amit nekem elég bonyolult lenne egymásba ágyazni a fenti módon.)
-
Teasüti
nagyúr
Köszönöm, kicsit döcögősen, de az XML-ből már ki tudok nyerni adatot a .getElementsByTagName().childNodes[0].nodeValue paranccsal. JSON-nal még nem volt időm foglalkozni. Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Ami még zavaros nekem, azok a deklarációknál lévő new kifejezések.
Erről kaphatnék egy kis magyarázatot?
Pl. var x = new String.
Vagy xhttp = new XMLHttpRequest().
Vagy reg = new RegExp() (amit eddig csak egyszerűen karakterláncként hoztam létre két "/" között). -
Teasüti
nagyúr
És JSON formátumot is fel tudok dolgozni XML objektumként?
Menet közben kiviláglott a JSON mint olyan Javascript rokonsága, de megzavart, hogy én itt XMLHttp-vel dolgozom.
W3School-on tanultam, amit eddig tudok, de úgy találtam erről vajmi keveset ír, vagy csak nincs jól összeszedve.
Még mindig nem tudom hogy álljak neki.
-
Teasüti
nagyúr
Köszönöm a sok segítséget!
Itt egy újabb, amivel megkönnyíthetnéd az életem:
Ha már működésre tudtam bírni az XML http reguest funkciót, akkor van arra vmi eljárás, hogy kell könnyedén kezelni az XML táblázatot?
Egy string-be töltöm le az adatokat (responseText) és jelenleg a split() függvénnyel vagdosom ki belőle a nyers információkat.
Létezik ennél elegánsabb és könnyebb módszer? (Gondolom igen)
Jobban mondva mi lenne az? (Gondolom responseXML formában kéne letölteni és ez vmi DOM objektum lesz, amiben közvetlenül elérem az infókat paraméteres formában talán?) -
Teasüti
nagyúr
Most látom csak, eddig elkerülte a figyelmem, hogy a protokollt a cím elé nem írtad oda, ez gondot okozhat, tehát ezt:
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);cseréld le erre:
http.open("GET","https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);Annyit változtattam, hogy eléraktam a "https://" részt.
Amúgy ez a "http" változónév nem túl szerencsés sztem. Akkor már "httpRequest" vagy ilyesmi, amit használnak pl. MDN-en is, kifejezőbb kicsit. Bár nem kardinális kérdés.
Tehát akkor összességében valami ilyesmi legyen a kódod (próbáld ki, ez megy-e):
var loc = "40.714224,-73.961452"; // csak példa
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
flash("readyState: "+httpRequest.readyState);
flash("status: "+httpRequest.status);
};
var url = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true";
var isAsynchronous = true; // változtasd meg, attól függően, hogy aszinkron kérést szeretnél, vagy sem
httpRequest.open("GET", url, isAsynchronous);
httpRequest.send();==================================
"Mi a helyzet akkor, ha kevesebb paramétert akarok átadni egy függvénynek, mint amennyi definiálva van?"
JavaScriptben ez működőképes, ez esetben a függvény paraméterei egyszerűen definiálatlanok maradnak, tehát undefined "értékük" lesz.Böngészőben ezt nagyon egyszerűen tudod csekkolni, nyisd meg az adott böngésző fejlesztőpanelét (ált. F12), kattints a Console feliratra, majd simán másold be ezt a kis kódot, és próbálgasd (az általad mutatott példával):
function hello(var1, var2) {
console.log('var1', var1);
console.log('var2', var2);
}
var blabla = 42;
hello(blabla);Ez esetben var1 értéke 42 lesz, var2 értéke undefined.
Ha úgy hívod meg a függvényt, hogy nem adsz át paramétert (így: hello();), akkor mindkét paraméter (var1, var2) értéke undefined.Paraméterezésnél vannak olyan beépített funkcióim Android-on, hogy mondjuk egy alkalmazás indítása, ami így néz ki:
loadApp(str label,str data,boolean)
Ilyen esetben, ha nem akarok semmilyen adatot átadni az alkalmazásnak, jobban mondva, hogy egy köztes paramétert nem akarok definiálni egy függvényeben, akkor itt mi a teendő szintaktikailag?
Eddig így csináltam: loadApp('Viber','',false) ahol egy üres string-et írtam a középső paraméterbe.
Próbáltam e módon is: loadApp('Viber',false) de ez nem működött. Úgy tűnik nem lehet csak úgy kihagyni egy köztes paramétert.A protokoll nagy ötlet volt!! Most működik a letöltés!!!

Ezer köszönet, egy hete szenvedek vele és sehol nem került említésre sem, még az Android-os fórumokon is protokoll nélküli url címek szerepeltek a példákban!!
-
Teasüti
nagyúr
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng=loc&sensor=true", false);
Azontúl, amit wis javasolt, még egy igen nagy hiba van a kódodban így első ránézésre, konkrétan az idemásolt részletben: a "loc" nevű változó értéke nem helyettesítődik be, mivel nem konkatenálod, tehát így kéne átírnod a fenti sort:
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng="+loc+"&sensor=true", false);
Mint látható, itt már hozzáfűződik a "loc" változó értéke.
Igen ez már feltűnt, viszont egyáltalán semmilyen válaszom nincs.
Fel se megy a telefon a netre.
Lekértem a ready state-et is menet közben e módon:
http.onreadystatechange = function() {flash(http.readyState}
El is számol 1-től 4-ig, de a 3 az kimarad.
És üres a responseText.
Bármilyen linket adok meg egyiket sem tölti le, mindig üres marad az adat.Már arra is rájöttem, hogy return csak akkor kell, ha function() szerepében hívom meg a kódot, amúgy meg egyszerűen flash(http.responseText) kódot használtam.
A flash() itt egy Android Toast üzenetet jelenít meg; olyasmi, mint az alert().MÁS:
Mi a helyzet akkor, ha kevesebb paramétert akarok átadni egy függvénynek, mint amennyi definiálva van?
Pl:
function hello(text1,text2)
{ blahblahblah }
hello(text1);
Ilyen esetben kötelező mindkét paramétert átadni?
Ezt nem csak a saját készítésű függvényekre értem, hanem a JavaScript-ben általában.
Nem találtam erre vonatkozó infót egyik tutorial-ban sem, hogy kötelező-e teljesen paraméterezni. -
Teasüti
nagyúr
-
Teasüti
nagyúr
Sziasztok!
Szükségem lenne némi segítségre hogy tudnék működésre bírni egy http get parancsot.
Használ itt vki Tasker-t btw?
Android-on próbálom futtatni a kódot, de csak Toast üzenetben kommunikál velem a fordító, és nem vmi informatív.Eddig erre jutottam, de csak "OK." Toast üzenet a jutalmam és legalább nem történik semmi:
var loc = [egy gps koordináta];
var http = new XMLHttpRequest ();
http.open("GET","maps.googleapis.com/maps/api/geocode/xml?latlng=loc&sensor=true", false);
send();
return(http.responseText);Majd az ezután következő sorok már le se futnak.
Idézőjeleket próbáltam aposztróffal is, úgy se jobb.
Ha jól sejtem, akkor a "http" változóban kéne visszakapnom szövegként a letöltött adatokat.
Akinek ez ismerős, kérem segítsen!
Jah amúgy épp csak ismerkedek a JS-el, semmi tapasztalatom nincs benne és informatikus se vagyok.
Köszönöm!
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- A fociról könnyedén, egy baráti társaságban
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Mesterséges intelligencia topik
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Kerékpárosok, bringások ide!
- Xiaomi 14 - párátlanul jó lehetne
- Revolut
- Építő/felújító topik
- Háztartási gépek
- Azonnali informatikai kérdések órája
- További aktív témák...
- SZÉP! HP ZBOOK FURY 15 G7 Tervező Vágó Laptop -70% 15,6" i7-10850H 32/512 Quadro RTX 3000 6GB FHD
- GARANCIÁLIS LEMEZES PLAYSTATION 5 SLIM CFI-2116
- NAGYKER ÁR!Sosemhasznált! HP OmniBook 5 Flip i5-1334U 8GB 512GB 14" FHD+ áthajtós-érintős Gar.: 1 év
- Macbook Pro 14" A2442 2021 M1 Pro 32/1TB Silver
- Dell Latitude 9420 i5-1145G7 14" FHD+ 16GB 512GB 1 év garancia
- Spigen Essential EF323MQ 3in1 Mágneses MagSafe Vezeték nélküli töltőállomás 25W Qi2.2 Fekete
- Felújított laptopok számlával, garanciával! Ingyen Foxpost/PostaPont!
- BESZÁMÍTÁS! AMD Ryzen 9 3900X 12 mag 24 szál processzor garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- 14" Dell Latitude laptopok: 5400, 5480, 5490, 7480, 7420, E6410, E6440, E5450 / SZÁMLA + GARANCIA
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




Egyrészt késő/korán volt, másrészt számomra furcsa ez az "arra nem akarok válaszolni"-stílus, én ha segítséget kérek, akkor minden hsz.-re reagálok, akár csak egy böffentés erejéig is, nem a saját fáradtságomra hivatkozom, hogy legalább a segítségnyújtó vágja, hogy igen, átjött az üzenet, nem ignoráltam. Nem hinném, hogy "programozói attitűd" a szabadidő hasznos eltöltésének igénye (amúgy ha már kérdezted, nem vagyok "full time programozó"), ennek az általánosító jellegű kifordítása ("mindig olyan nagyra vannak az idejükkel [...] És elefántot csinálnak a bolhából, a konvenciókból") pedig meglehetősen vicces (véleménynyilvánítás a magas lóról, miközben eddig az ellenkezője igazolódott be
Tegnap ezt dobta a gép, sorry. Peace!

JavaScriptben programozol hozzá, ezzel kapcsolatban, meg a környezettel kérdeztem.
De hogy mitől működik... Kézikönyvben nem esik szó a környezetről.
Amúgy ha ![;]](http://cdn.rios.hu/dl/s/v1.gif)


Az xmlDocument viszont pont ugyanaz, csak egyszerűbben leér. Amire neked kell, nem számít a különbség.



