- Hamarosan megkezdődik a nubia 2,8K-s táblagépének szállítása
- Barátokká váltak az eddig rivális AI-óriások
- ASUS blog: Ideális olcsó utazós gép lett az új Vivobook S14
- Az Aura Displays hordozható monitorhármasa jól felturbózhatja a produktivitást
- Dual Mode-os IPS monitorral adott magáról életjelet a Gigabyte
-
PROHARDVER!
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
-
válasz
Mr Dini #6535 üzenetére
Kis korrekció, mert rájöttem, hogy totálisan nagy hibát követtem el... A Cheerios megoldásom most valahogy így néz ki:
title = $("div.container > section#filmek.content_box > ul.row.list-unstyled.movie-list > li.col-md-2.col-sm-3.col-xs-6.no-cover-data:first > a > div.cover-element.cover-info > span.title").text();
Viszont még ez sem működik...
Szerk.: Megvan!
title = $("div.container > #filmek > ul.row.list-unstyled.movie-list > li.col-md-2.col-sm-3.col-xs-6.no-cover-data > a > div.cover-element.cover-info > span.title").text();
Viszont a Cheerio nélküli megoldásra még szintén nyitott vagyok!
-
sztanozs
veterán
válasz
Mr Dini #6340 üzenetére
syntetic sugar:
var DATA = '';
function getPage(url) {
http.request.get(url).then(function (response) {
DATA = response;
console.log(response);
})
}
getPage('http://akarmi/');
while(DATA === '');
alert(DATA);Amúgy nem értem miért nem lehet az egész feldolgozást a then-be rakni, azt kész...
-
fordfairlane
veterán
válasz
Mr Dini #6340 üzenetére
Még mindig nem értem, miért ilyen elképesztően fontos ez a globális változó, mintha anélkül nem lehetne programot írni.
-
Jim-Y
veterán
válasz
Mr Dini #6338 üzenetére
Egyetlen egy dolog ami hatraltat teged, hogy foggal korommel ragaszkodsz ahhoz, hogy "fusson le a getPage es az eredmenyt irja bele a DATA valtozoba". Amit nem latsz at, hogy lehet olyan kodot irni, ami az eredmenyt beleirja egy globalis valtozoba, de te azt nem fogod tudni, hogy mikor tortent meg, mert az a valtozoba iras majd valamikor a jovoben fog megtortenni addig a kodod fut tovabb
Szerintem ezt mar nem lehet tovabb ragozni, nem akarsz lathatoan utanaolvasni a dolgoknak, es most felre fogod dobni a nyelvet, mert nem tudsz valamit megcsinalni, sajat hibadbol, mert kb 15perc olvasassal mar vilagos lenne szamodra is, hogy mit hibazol el.
/* 1 */ function getPage(url) {
/* 3 */ http.request.get(url).then(function (response) {
/* 5 */ DATA = response;
/* 6 */ console.log(response);
})
}
/* 2 */ getPage('asd');
/* 4 */ alert(DATA); -
CSorBA
őstag
válasz
Mr Dini #6336 üzenetére
A function is kód.
De sejtem mire gondolsz és akkor valami ilyesmi kell neked:
getPage('http://page1.hu').then((html) => doWhateverYouWantWithPage1(html));
getPage('http://page2.hu').then((html) => doWhateverYouWantWithPage2(html));
getPage('http://page3.hu').then((html) => doWhateverYouWantWithPage3(html));
function doWhateverYouWantWithPage1(html) {
// code1
}
function doWhateverYouWantWithPage2(html) {
// code2
}
function doWhateverYouWantWithPage3(html) {
// code3
}Sokáig lehet ezt ragozni, de más megoldás erre nincs, a JS így működik. És azt is elhiheted, hogy ez a logikus és átlátható mód. Ha nem tetszik, akkor csinálhatod PHP-val és CURL-el mondjuk.
-
CSorBA
őstag
válasz
Mr Dini #6334 üzenetére
De a JavaScript nem így működik. A JS egy szálon fut. Ha valami külső dologra (async) kell várnia, akkor nem állhat le. Ugrik a következő sorra. Hát gondolj bele, ha valami hiba történne, vagy lassú lenne a net, akkor addig állna, míg be nem tölt valamit? És az állt úgy kell érteni, hogy addig semmit sem tudsz csinálni. Épp ezért egy ilyen asyncron kérés visszatér egy promissal, ami ha resolválódik. (Teljesül az ígéret) akkor meghívja a jövőben azt a függvényt, ami erre várt.
Az általad hozott példát valahogy így lehetne használni:
function getPage (url) {
'use strct';
return new Promise((resolve, reject) => {
const httpLibrary = url.startsWith('https') ? require('https') : require('http');
httpLibrary.get(url, (response) => {
const body = [];
response.on('data', (chunk) => body.push(chunk));
response.on('end', () => resolve(body.join('')));
}).on('error', (error) => {
console.log('Error!', error.message);
});
});
}
getPage('http://vanenet.hu').then((html) => doWhateverYouWantWithHTML(html));
function doWhateverYouWantWithHTML (html) {
console.log(html);
}A doWhateverYouWantWithHTML-be írod amit szeretnél csinálni, és ez akkor hívódik meg, mikor betöltődött sikeresen a page, amivel meghívtad a getPaget.
Szerk.: De ahogy látom Jim-Y fórumtárs is erre próbált fentebb rávezetni, egy hasonló példával.
Tényleg olvasgass a témában, nem feltétlen egyszerű, de mindenkinél van egy pillanat mikor átkattan és megérti. -
CSorBA
őstag
válasz
Mr Dini #6332 üzenetére
Sajnos nem érted, amit itt többen is írtak.
A .then callbackjében lévő rész egész egyszerűen később fut le, mint az alerted. Ezért az alertedben soha sem fogod elérni. Ha csinálnál egy függvényt, amibe berakod az alertet és azt hívod meg a .then callbackjében, akkor már megy, hiszen ez akkor hívódna meg, mikor már az async műveletnek van eredménye.
-
fordfairlane
veterán
-
dqdb
nagyúr
válasz
Mr Dini #6321 üzenetére
Széllel szemben nehéz lesz
Az egész Node.js éppen az aszinkron működésre épít, így minden esetben, amikor nem aktívan dolgozol, hanem valami erőforrásra vagy eseményre vársz, legyen az hálózatról adat lekérése, fájl írása* vagy adatbázis-művelet, mindig egy callbackben kapod meg a végeredményt. Ennek az az oka, hogy a szinkron várakozás blokkol egy feldolgozószálat, és csökken a szerver feldolgozási képessége, míg aszinkron esetben az adott szál lazsálás helyett értelmes munkára is befogható, vagyis egy másik kérés feldolgozására. Most mondhatod, hogy de te ezt nem kérted, azonban azzal, hogy a Node.js alapon álltál neki, pont egy aszinkron, threadpool alapú hatékonyan skálázódó platformra esett a választásod, így vagy megszoksz, vagy megszöksz ...
Kókányolni
szerencséresajnos minden platformon lehet, így itt is, és valószínűleg ezt keresed (nem használtam soha, keresés dobta ki). De itt sem nem véletlenül kezdődik a leírás a Githubon elérhető legnagyobb betűméretű bekezdéssel, hogy miért ne használd ezt a libraryt.viszont gondolom node js-nél a CORS miatt nem megy
A CORS böngésző szintjén értelmezhető csak. A Node.js azért nem támogatja az XHR-t, mert saját API-ja van, nem a böngésző DOM modelljét másolja.* ebből kivételesen létezik szinkron API is, de ennek ellenére a aszinkron felület felé terelnek a hivatalos dokumentációban:
"In busy processes, the programmer is strongly encouraged to use the asynchronous versions of these calls."
-
Jim-Y
veterán
válasz
Mr Dini #6321 üzenetére
De ezt nem tudod megcsinalni, mert az asynchronous non-blocking I/O ahogy a javascriptet illetni szoktak lenyege pont az, hogy az async operationok nem blokkoljak a vegrehajtasi szalat. Magyaran, beallithatod te az XHR-t szinkronra, hogy amikor az mondod, hogy getPage(xyz) akkor az eredmeny rogton a DATA-ban legyen, de akkor az egesz javascript/nodejs filozofialval szembe mesz es amugy is ilyet nem csinalunk. Nem veletlenul minden async... Tenyleg javaslom hogy olvasgass kcsit a temaban, mert ugy tunik, hogy nem erted kristaly tisztan hogy hogy is mukodik a javascriptben az async.
Magyarazat:
a getPage belul egy requestet hasznal ami egy http keres lesz egy szerverre, amig erre a http keresre nem erkezik valasz addig NEM SZABAD blokkolni a stacket mert a javascript egy vegrehajtasi szallal (egy stackel) rendelkezik es minden UI is ezen "fut". Ha te egy szinkron kerest csinalsz, mint amit pont most szeretnel elerni akkor egez addig amig a tavoli szerver vissza nem ter addig SEMMIT sem tudnak a felhasznalok csinalni az oldaladon. Mondanom sem kell, hogy ez az egyik legnagyobb antipattern. Helyette aszinkron kell a tavoli szerver kerest kezelni. Vagyis... elinditod a kerest, majd rogton "visszaadod a vezerlest a fo szalnak" persze javascript eseten nincs ertelme ennek a mondatnak de igy konnyebb elkepzelni. Ami tenylegesen tortenik az az hogy amikor elinditasz egy requestet akkor a webapi regisztral egy callbacket amit tcp socket valasz eredmenyevel fog meghivni. Promiszok eseten a callback egy rezolvalt promis lesz.
-
Jim-Y
veterán
válasz
Mr Dini #6319 üzenetére
Szia,
Ami neked kell az, hogy utananezz az aszinkronitasnak es a promisoknak javascriptben, mert igazabol ilyen jellegu a problemad.
Javascriptben a legtobb network hivas aszinkron, vagyis a hivas eredmenye valamilyen jovobeli idopontban lesz csak meg, es mivel a nyelv kornyezete tamogatja az ilyen jellegu hivasokat aszerint is kell kezelni oket. Ennek megkonnyitesere vannak a promisok amiket te mar hasznaltal is a kododban csak valoszinuleg rosszul.
az
alert(getPage(valami))
mar csak azert sem mukodhet, mert ezzel a sorral azt feltetelezed, hogy a getPage szinkron fuggveny pedig nem az!Pszeudokod:
function getPage(url) {
return http.request({ url: url, method: "GET" });
}
function yourLogic() {
const URL = 'http://www.vanenet.hu';
getPage(URL)
.then(function (response) { alert(response); })
.catch(function (err) { console.error(err); })
} -
válasz
Mr Dini #6318 üzenetére
Még így sem megy:
var DATA = '';
function getPage(url){
var http = require("http");
content = http.request({ url: url, method: "GET" }).then(function (response) {
str = response.content.toString();
console.log(str);
DATA = response.content.toString();
}, function (e) {
alert("Error!");
}); return DATA;
}
alert(getPage('http://www.vanenet.hu/'));Egyedül a callbackes megoldásom működik rendesen:
function getPage(callback){
var http = require("http");
content = http.request({ url: URL, method: "GET" }).then(function (response) {
str = response.content.toString();
console.log(str);
callback(str);
}, function (e) {
alert("Error!");
}); return(str);
}
var URL = 'http://www.vanenet.hu';
getPage(function(result){ alert(filmName +result);});Viszont én meg nem szeretném ezzel a function(result)...-tal meghívni a függvényt, hanem annak a helyére a linket szeretném megadni és azt szeretném, ha a DATA változóban lenne a HTML kód.
Egyébként node JS-t használok.
Már a hajam égnek áll ettől!
-
válasz
Mr Dini #6190 üzenetére
Ja, most már kezd világos lenni, hogy mit rontok el!
Szóval a szkript lényege, hogy egy adott felhőtárhelyre belép a user adataival és eljut a direkt letöltési linkhez fájlonként. Ehhez parsolnom kell az oldalakat, amihez ugye kellett az xhr. Nade a felhő nem az enyém, és ha jól értem, akkor mindkét oldalra (a JS és a felhő oldalára) kéne egy Access-Control-Allow-Origin: * fejléc (header).
Namost, ezt én nem tudom megengedni magamnak, mivel ugye nincs hozzáférésem a szervereikhez...
Próbáltam így, de nem elég:
var DATA = '';
function getPage(url){
var http = new XMLHttpRequest();
http.open("POST", url, false);
http.setRequestHeader("Access-Control-Allow-Origin","*");
http.send();
DATA = http.responseText;
}És igen, globális változót használok, mivel a változó tartalmára nem csak egyszer van szükség, és így tartottam a legkézenfekvőbbnek.
Más nem használ ilyesmit? Hogy lehetne megkerülni?
-
Jim-Y
veterán
válasz
Mr Dini #6184 üzenetére
Egyebkent irtad hogy a pythonban az a jo, hogy van egy hasznos lib amivel konnyu http requesteket csinalni, es hogy ez js-ben hianyzik. Na ez pl annyira nem igaz, hogy par sornyi kodbol tudsz csinalni egy alkalmazast amiben ennyi a request resz (t.k ugyanaz amit te is mutattal) https://preview.c9users.io/mogyibogyi/promo/client/js/main.js
Az alkalmazas fajljai: https://preview.c9users.io/mogyibogyi/promo/
Demo: https://promo-mogyibogyi.c9users.ioBtw: nyilvan linkelni is lehetett volna egy fetch polyfillt de az too-lame
-
Jim-Y
veterán
válasz
Mr Dini #6184 üzenetére
Szia, gondoltam, annyi a megoldas, hogy az index.html-t ne csak siman megnyisd a bongeszoben, hanem egy webszerverrel szolgald ki. A legegyszerubb, ha bemesz abba a konyvtarba ahol a fajlod van es
python -m SimpleHTTPServer .
Majd a bongeszodben:localhost:8000
forras: [link] De akar node-al is siman meg lehet csinalni par sornyi kodbol es ott meg CORS-ot is tudsz allitani ha kene. -
fordfairlane
veterán
válasz
Mr Dini #6184 üzenetére
A kódodban az XmlHttpRequest objektum open metódusában a harmadik paraméter true. Ez azt eredményezi, hogy aszinkron módban akarod használni. Ilyenkor az utána következő send metódus azonnal visszatér, nem várja meg a szerver válaszát. Vagy használd szinkron üzemmódban, vagy úgy használd, ahogy az én példakódomban.
1. new-val példányosítasz
2. onreadystate-re beállítod, hogy a response-nál mi történjen.
3. open(method, url, async)
4. setRequestHeader, amennyiben szükséges
5. sendÉs ha már functiont használsz, inkább a visszatérésben szerepeljen a responsedata, ne globális változóba tedd.
-
Sk8erPeter
nagyúr
válasz
Mr Dini #6163 üzenetére
Ha ahhoz is lusta vagy, hogy a böngészőben kipróbáld némi kiegészítésekkel, akkor miért nem vagy lusta megkérdezni itt a fórumon? SOKKAL tovább tart az egész hozzászólást megírni, mint kipróbálni azt a nyomorék kódot.
Csak saját okulásod céljára kérlek nyomj egy Ctrl+Shift+I-t, kattints a Console tabra, majd dobd be ezt a pici kódot:var storagesArray = ['https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 0;
for(i = 0; i < storagesArray.length; i++){
storagesAsString += (i + 1) + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString);Jé, nahát, működik, gondolom csodát láttál.
Ilyen nagy erőfeszítésekre gondoltam, amikkel akár egyből ki is próbálhatod, mi a búbánattól vérzik el a kódod. Amíg nem tanulsz meg rájönni a saját kódod hibáira, addig programozni sem fogsz megtanulni soha. Mindig mástól várni a segítséget megint csak nem jó út.Ha meg a 0. indexen lévő elemet nem szeretnéd kiíratni, akkor igazítsd hozzá a kódot:
var storagesArray = ['EZ NEM KELL', 'https://drive.google.com', 'https://dropbox.com'];
var storagesAsString = '';
var i = 1;
for(i = 1; i < storagesArray.length; i++){
storagesAsString += i + '.: ' + storagesArray[i] + '\n';
}
alert(storagesAsString); -
fordfairlane
veterán
válasz
Mr Dini #6167 üzenetére
Egy sima POST request küldése pár sorból megoldható, mindenféle framework nélkül.
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
// Ebben van a valasz: req.responseText;
}
}
req.open("POST", "submithandler.php", true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("var1=data1&var2=data2&var3=data3");A Fetch API-val meg még egyszerűbb.
-
Sk8erPeter
nagyúr
válasz
Mr Dini #6155 üzenetére
Az ilyen halál egyszerű kódrészleteket egyébként nyugodtan kipróbálhatnád a fejlesztői panelben is, úgy, hogy bedobod a konzolba, csak alakítsd át egy picit úgy, hogy tesztelhető is legyen. Nyomsz egy Ctrl+Shift+I-t (vagy F12-t), rányomsz a Console fülre, majd bedobod a kódodat. Vagy erre van a jsFiddle, csak akkor is nyisd le a konzolt, hogy lásd az esetleges hibákat, amiket oda dobál ki. Meg hát nyilván ennél kicsit szofisztikáltabb módszerek is léteznek, például valami komolyan vehető fejlesztőkörnyezet használata, JSHint, JSLint, meg egyéb módszerek, amik hozzájárulhatnak a kódod minőségének javításához.
Amúgy igen, inicializálni kell a változódat, mielőtt a nemlétező korábbi értékéhez akarsz hozzáfűzögetni bármit, és ha nem akarsz "Uncaught ReferenceError: <VALAMIVALTOZO> is not defined" jellegű hibákat kapni. Például ezeket a hibákat azonnal láttad volna, ha a konzolba dobálnád be a kódot, vagy abban a környezetben, aminél használod a kódot, kihasználnád a rendelkezésre álló, hasonló jellegű hibakeresési módszereket.
Ezenkívül JavaScriptben nem szokás a változókat nagy kezdőbetűkkel írni.
Plusz ha alert-üzenetbe akarod mindezt kiírni, akkor valami nem stimmel, valószínűleg lenne ennél szebb megoldás (az alert-dialógus elég bénácska és korlátozott, persze tesztelésnek néha elmegy (ha nagyon muszáj), ha nem tudsz épp debuggolni, plusz nem felel meg a console.log, stb.). -
w.miki
veterán
válasz
Mr Dini #6160 üzenetére
eddig lekezelte, nem tudom, mi változott 2 hete, de előtte jó volt
egyébként meg ha kiszeded a film linkjéből, a "http://j.gs/xxxxx" (szám) szöveget, és csak a "http://filmezz"-tól hagyod meg, akkor nem megy az adf.ly-ra
Most csak az indavideos rész jó.
Gondolom a többi function épp az ilyen kattintások miatt van, de... csak tippelgetek... -
w.miki
veterán
válasz
Mr Dini #6158 üzenetére
nézz bele a filmezz.eu.zip-be, hátha kapsz ötletet...
vagy megmondod, azzal mi a baj -
Sk8erPeter
nagyúr
válasz
Mr Dini #6087 üzenetére
A smiley kivágására szolgáló reguláris kifejezés így nem jó, túl megengedő, és érthető, hogy kivágja a többi részt is. Le kell szűkítened olyan módon, hogy ténylegesen csak a smiley-kra illeszkedjen, és konkrétan azt a részt szedd ki, ami neked kell, tehát ami az
alt
attribútumnál meg van adva.Itt van egy példa a smiley-kra szolgáló képre:
<img src="/dl/s/d1.gif" alt=":D">
Ebből neked értelemszerűen az
alt
attribútum értékének megadott:D
kell, idáig Te is eljutottál.Itt egy példa egy jól működő replace-re:
var emoticonImg = '<img src="/dl/s/d1.gif" alt=":D">';
var emoticonText = emoticonImg.replace(/<img src="\/dl\/s\/[^"]+\.gif" alt="([^"]+)">/, "$1");
console.log(emoticonText); // output: :DEzt a reguláris kifejezést persze el kell látnod a megfelelő flagekkel, hogy jól működjön, itt leszűkítettem a lényegre.
Szerk.: a reguláris kifejezésben szereplő
[^"]+
azt jelenti, hogy itt egy vagy több olyan karakternek kell szerepelnie, amely nem egyezik az idézőjellel ("). -
-
-
fordfairlane
veterán
válasz
Mr Dini #5901 üzenetére
1. a var kulcsszót egyszer kell használni a number nevű változó esetében, mondjuk mikor először adsz neki értéket.
2. ha csak egy kép van, a while végtelen ciklust eredményez.
3. Ha number nem lehet nulla, mert a setWallpaper nem nullával indexeli a háttérképeket, akkor egyszerűbb a randomszám generálást úgy megírni, hogy egytől kezdődően dobjon számokat.Math.floor(Math.random() * (max - min)) + min;
azaz jelen esetben
Math.floor(Math.random() * (Hatterek.length - 1)) + 1;
4. Elég a while ciklusban randomszámot generálni, nem kell két Math.random sor.
Szóval ebben a formában valami ilyesmi célszerűbb:
var Hatterek = listFiles("Hatterek", false).split("\n");
var number;
if(Hatterek.length > 1) {
while(number == global('OldScrBcg')) {
number = Math.floor(Math.random() * (Hatterek.length - 1) + 1);
}
} else if(Hatterek.length == 1) {
number = 1;
}
if(number) {
setGlobal('OldScrBcg', number);
setWallpaper(Hatterek[number]);
} -
Sk8erPeter
nagyúr
válasz
Mr Dini #5875 üzenetére
"Azt szeretném, hogy addig fusson a for loopba, amíg az i értéke I-vel megegyezik."
És ki fogja átállítani azt a mágikus globális I változót?
Igazából egyébként ez a kódrészlet és a feladatspecifikáció teljesen érthetetlen:
"A feladata az, h kiírja a listFiles tartalmát, levágja splittel a sortöréseknél (azaz a következő fájl nevénél) és generál egy random számot, amit utánatesz az 'i' mögé kapcsoszárójelek közt. Azaz a split miatt így tudok hivatkozni a tömbösített változóra. Na szóval értitek..."
Nem, nem értjük.Először a splittel készítesz egy tömböt, ez lesz az i változó. Itt gyorsan hozzátenném, hogy leszokhatnál az ilyen teljesen értelmetlen nevű változókról, inkább legyen egy mondatnyi hosszúságú változót, mint egy ilyen értelmetlen fos. Mit jelent az, hogy a tömb után akarsz teni valamit kapcsos zárójelek közt? Úgy érted, hogy a tömb összes stringeleme mögé akarsz fűzni valamit? A tömbbe akarsz bedobni egy újabb változót? Vagy mi a célod?
Mert itt a ciklusok, meg az egész kód ennek fényében tök értelmetlennek tűnik. -
Zedz
addikt
-
-
DNReNTi
őstag
válasz
Mr Dini #5875 üzenetére
Tehát:
Egy baromi egyszerű példa for ciklusra, bár fordfairlane és éppen ezt írta le, csak én áttettem neked gyakorlatba, ez alapján már egész biztosan mennie kell:for(var i = 0, i < 10, i++) {
console.log(i);
} -
Jim-Y
veterán
válasz
Mr Dini #5872 üzenetére
Szia. Mobilról. Nincs ezzel semmi gond, lehet olyan for ciklust írni ahol az inicializaciot nem a for-ban hanem előtte végzed, illetve a leptetest sem bízod a ciklusra, hanem a torzsben magadtól végzed. Általában ezeket szoktak kihagyni de a kilépési feltételt nem. Bár szerintem meg azt is ki lehet hagyni hisz ott a break. A te esetedben rossz bucketbe került a kilépési feltétel. Udv
-
fordfairlane
veterán
válasz
Mr Dini #5872 üzenetére
Laikusként használhatnád a for-t úgy, ahogy a specifikációban szerepel.
for([inicializálás], [ciklus feltétel], [ciklus utasítás]) {
utasítás;
}Első ránézésre ez valami überh@xOr for ciklus, amiben nincs se feltételvizsgálat, se léptetés, és emiatt végtelen ciklussá válik.
-
slice14
veterán
válasz
Mr Dini #5432 üzenetére
Itt inkább a probléma a hiányzó adatoknál lehet csak legfeljebb, mert ha nincs adat az adott változóhoz, akkor a változó nevét jeleníti meg a tasker a notifiben, sceneben vagy akár a zooperben. De mivel nem volt ehhez hasonló megoldás a kódban, így marad az if.
Na de nem a hiányzó adat volt a téma.
-
Karma
félisten
válasz
Mr Dini #5268 üzenetére
A Weather.current_observation.temp_c egy szám, nem string, így nincs is neki split metódusa. Felejtsd már el végre, vedd úgy, hogy nincs is ilyen a nyelvben
Úgy látom, hogy a fok egészrészét próbálod meghatározni, erre használd inkább a toFixed metódust. Ez még kerekít is egy kicsit.
Szóval:
var Jelenlegifok = Weather.current_observation.temp_c;
var Jelenlegihofok = Jelenlegifok.toFixed(0); -
Karma
félisten
-
Új hozzászólás Aktív témák
Hirdetés
- iKing.Hu - Samsung S25 Ultra - Titanium Black - Használt, karcmentes
- Apple Ipad 10.generáció
- Új HP Pavilion x360 14-ek Érintős hajtogatós Laptop Tab 14" -35% i5-1335U 8/512 FHD IPS Iris Xe
- RTX 4080 SUPER,16GB. Ryzen 7 7800X3D, 32 RAM Fury RGB! Garancia!
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone i5 10600KF 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- BESZÁMÍTÁS! ASRock B250 i5 6600 16GB DDR4 256 SSD 500GB HDD GTX 1050 2GB Zalman Z1 Njoy 550W
- Lenovo Legion 5 15ACH6 Az ár irányár, komoly érdeklődés esetén van lehetőség egyeztetésre
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest