Hirdetés
- Elektromos rásegítésű kerékpárok
- Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- Fűzzük össze a szavakat :)
- A laposföld elmebaj: Vissza a jövőbe!
- Nagy "hülyétkapokazapróktól" topik
- Ingyen kellene, de tegnapra
- "A homoszexualitás természetellenes" 😠
- PLEX: multimédia az egész lakásban
- A fénynél gyorsabban
-
LOGOUT.hu
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
válasz Sk8erPeter #3650 üzenetére
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!![ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz Teasüti #3651 üzenetére
Na, ennek örülök, szívesen!
============================
"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."
Az első változat a jó ebben az esetben. Vagy másik lehetőség az undefined-ot átadni: loadApp('Viber', undefined, false)
Lehetnek default paramétereid is, minimális trükközéssel, csak példakóddal:function loadApp(label, data, blabla) {
// ..........................
if(data === "" | data === undefined) {
data = "hello";
}
if(typeof blabla !== "boolean") {
blabla = false;
}
// ..........................
// ..........................
}Ekkor meghívhatod így: loadApp('Viber');, és ekkor a data változó egyenlő lesz a "hello" stringgel, a blabla változó pedig false-szal.
Persze ez csak példa.
Aztán játszhatsz még ilyenekkel is, mint például a PHP-s empty() függvény JS-be átültetett változata, és azzal is csekkolhatod egy változó értékét:
http://phpjs.org/functions/empty/
és ha valamelyik változó üres, akkor adsz neki egy alapértelmezett értéket, mint az előbbi példa.Sk8erPeter
-
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?)[ Szerkesztve ]
-
Karma
félisten
válasz Teasüti #3653 üzenetére
Hát a splitet nagyon gyorsan felejtsd el erre a célra! Amellett hogy ocsmány, nagyon hamar karbantarthatatlanná válik.
Természetesen van jobb megoldás, a responseXML-lel pont, ahogy írtad. Ha well-formed XML jön le, elvileg semmi dolgod nincs, csak ezt használni a text helyett. Példát láss itt.
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
válasz Teasüti #3653 üzenetére
Huh, ez a split()-es megoldás nagyon rossz. Karma előttem már írta az XML-es megoldást, de ha van rá lehetőséged, használhatnád a JSON-ös megoldást is, én legalábbis mindenképp kellemesebbnek találom JavaScript-kódban ennek a használatát.
Példa, ha már a Google Maps volt a központi téma:
XML:
https://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452&sensor=true
JSON:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true(az URL-ben csak az "xml" részt kellett "json"-re változtatni)
Sk8erPeter
-
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. -
fordfairlane
veterán
válasz Teasüti #3656 üzenetére
Ha megvan az eredmény JSON formátumban, egyszerűen belerakod egy változóba, majd a megfelelő propertyket lekérdezed.
var v = http.responseText;
for(i = 0; i < v.results.length;i ++) {
alert(v.results[i].formatted_address);
}alert helyett persze használj valami más debug kiíratást.
[ Szerkesztve ]
x gon' give it to ya
-
Sk8erPeter
nagyúr
válasz Teasüti #3656 üzenetére
"É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.
[ Szerkesztve ]
Sk8erPeter
-
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).[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Sk8erPeter #3658 üzenetére
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
válasz Teasüti #3659 üzenetére
Bár referenciát még nem találtam a node-ok szerepére a fenti sorban, esetleges alternatívákra.
Nem aktuális. -
Lacces
őstag
Hali,
Van-e olyan eszköz, amivel azt lehet megnézni, hogy az oldal betöltésekor mely JS függvények futnak le?
Az oké, hogy mely fájlok, de a függvények jobb lenne . -
Teasüti
nagyúr
válasz martonx #3662 üzenetére
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é?
[ Szerkesztve ]
-
Karma
félisten
válasz Teasüti #3666 üzenetére
Ha böngészőben lennél, akkor azt mondanám, hogy a szinkron viselkedés semmilyen körülmény mellett nem elfogadható és szervezd át úgy, hogy az egyes hívásokat lekezelő függvényeket kezelő onreadystatechange függvényeket előre definiáld.
Ha használnál külső libeket, akkor meg a Promise objektumok felé terelnélek.
Viszont így Taskerben nem olyan kritikus a helyzet.
---
Változós téma.
A változó deklarálás, amit a var kulcsszóval jelzel, és az objektumlétrehozás, amit csinálhatsz a new kulcsszóval, illetve primitív típusoknál a literálokkal meg regexnél a / jelekkel, két egymástól teljesen független dolog.
A deklarálás különböző formáiról, hogy akkor hol tárolódnak az értékek, és hogy hat rájuk a delete operátor pont tegnap olvastam egy nagyon jó cikket.
[ Szerkesztve ]
“All nothings are not equal.”
-
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.
[ Szerkesztve ]
-
Karma
félisten
válasz Teasüti #3668 üzenetére
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
“All nothings are not equal.”
-
Teasüti
nagyúr
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.[ Szerkesztve ]
-
Karma
félisten
-
Karma
félisten
-
Karma
félisten
Bocs a spamért, nem tudtam visszaaludni
Átírtam a fiddle-t vanilla XHR-re, így biztos nem téveszt meg a jQuery És közben azt néztem, hogy az MDN-en nagyon részletesen kitárgyalják az XHR-t és utána az XML feldolgozást is.
Az XPath teljesen kiment a fejemből, de az is egy sokkal kompaktabb alternatíva arra, amit szeretnél
“All nothings are not equal.”
-
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
válasz Speeedfire #3677 üzenetére
Nem 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! -
-
martonx
veterán
válasz Teasüti #3671 üzenetére
"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." - figyi az XML a múlt, a JSON a jövő. Viszont historikus okokból persze, hogy rengeteg XML-es webszolgáltatással lehet találkozni, de ez akkor is a múlt (illetve per pillanat még a jelen egy jó része), pont az olyan szopáshalmok miatt, mint amikbe te is belefutsz. Ráadásul a SOAP (a webszerveres xml kommunikáció élharcos protokollja) pont annyira szabványos, mint a HTML, vagyis ahány implementáció, annyiféle kompatiblitiási problémába lehet belefutni.Én kérek elnézést!
-
Speeedfire
félisten
-
martonx
veterán
Ja, én is szopni szoktam velük rendesen. Az a legjobb, amikor agyonreklámozzák, hogy ilyen meg olyan fejlesztői támogatás, meg überkompatibilis wsdl, aztán mikor csinálsz egy Service bindingot a wsdl-ből, akkor nem győzöd a hányadék wsdl-t, meg a generált kódot javítgatni. A fejlesztői támogatás meg kimerül abban, hogy 4 hónap múlva annyit válaszolnak a support ticket-re, hogy más még nem jelzett ilyen problémát, de jogos a felvetés, hogy hibás itt-meg ott (de megoldás persze nincs).
Én kérek elnézést!
-
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.
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Teasüti #3684 üzenetére
Nem csak W3School referenciája hibás ezek szerint. Itt sincs szó UTC-ről a getTime() esetében.
-
Karma
félisten
válasz Teasüti #3685 üzenetére
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
[ Szerkesztve ]
“All nothings are not equal.”
-
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. -
Teasüti
nagyúr
válasz Teasüti #3688 üzenetére
Ö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
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
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.[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz Teasüti #3671 üzenetére
"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.
[ Szerkesztve ]
Sk8erPeter
-
Teasüti
nagyúr
válasz Sk8erPeter #3692 üzenetére
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. -
Sk8erPeter
nagyúr
-
Teasüti
nagyúr
válasz Sk8erPeter #3694 üzenetére
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
Őőő 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
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
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]++};
-
Sk8erPeter
nagyúr
válasz Teasüti #3698 üzenetére
Pont ezt akartam írni én is, hogy ennek úgy, ahogy van, ebben a formában semmi értelme. Tényleg leírhatnád, mi a célod.
(#3696) Teasüti :
biztos, hogy ezt az egészet JavaScripttel akarod elintézni, nem pedig valami adatbázissal, amiben még lehet is értelmesen keresgélni és tárolni (mivel például erre való)?Sk8erPeter
Új hozzászólás Aktív témák
Hirdetés
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- ZIDOO médialejátszók
- Discord
- A fociról könnyedén, egy baráti társaságban
- Okos Otthon / Smart Home
- Ryzen 7 9800X3D processzor: játékosokra hangolva
- Politika
- Elektromos rásegítésű kerékpárok
- Hardcore café
- Eredeti játékok OFF topik
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest