- Google Pixel topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Külföldi prepaid SIM-ek itthon
- Samsung Galaxy S25 - végre van kicsi!
- Megvan a Xiaomi 17 Max bemutatójának dátuma is
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S23 FE - nincsen sárkány
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Xiaomi 17 - még mindig tart
-
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 Tabletek, E-bookok Nyomtatók, szkennerek 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
-
slice14
veterán
Sziasztok
Az időjárás cucnál van egy érdekesség. Ez van js-ben megadva az jelenlegiidojaras kiíratásához.
Jelenlegiidojaras = Weather.current_observation.weather; if (Jelenlegiidojaras == undefined) {
setGlobal('%Jelenlegiidojaras',"N/A "); } if (Jelenlegiidojaras != undefined) {
Jelenlegiidojaras2 = convert( Jelenlegiidojaras, 'htmlToText');
setGlobal('%Jelenlegiidojaras',Jelenlegiidojaras2); }Viszont a json-be ha hiányzik, az adat, akkor a változónevét írja ki.
"weather":"",
Valami ötlet?
-
slice14
veterán
Az undefined azt jelenti, hogy az adott változónak nincs értéke. Itt szépen leírják, hogy mire is kell gondolni.
Ha egy kicsit lejjebb görgetsz, akkor látni fogod, hogy az if(x === undefined) az igazából ugyan az, mintha azt vizsgálnád, hogy if(!x).
Ha érdekel a JS akkor szerintem megéri rászánni egy kis időt, és elolvasni ezt a könyvet.
Köszi.

Azt hiszem bele kénne ássam magam jobban a témába.
-
slice14
veterán
Lehet hogy hülyének néztek, de van ilyen undefied paraméter if-nél?
Valtzozo = .................weather; if (Valtozo === undefied)
Vagy ez így csak akkor müxik, ha a szöveg = undefied?
-
slice14
veterán
-
slice14
veterán
typeOf(valami) === "undefined"
Gondolom a valami helyére a változót kell írni....?
-
slice14
veterán
Köszi, megpróbálom.

-
slice14
veterán
Sziasztok
Hogy tudom azt if-elni hogy ha egy text adat hiányzik a json-ből lekérésnél. Tehát ha nincs benne adat, akkor rakjon be egy szóközt vagy egy - jelet.
Ez így nem müxik, gondolom azért mert a null az szám értéket nézz...
Jelenlegiidojaras = Weather.current_observation.weather; if (Jelenlegiidojaras == null) {
setGlobal('%Jelenlegiidojaras'," "); } if (Jelenlegiidojaras != null) {
Jelenlegiidojaras2 = convert( Jelenlegiidojaras, 'htmlToText');
setGlobal('%Jelenlegiidojaras',Jelenlegiidojaras2); }Gondoltam még hogy else-vel is megoldható lenne, de itt az lenne a feltéttel hogy ha nincs adat, akkor rakjon be egy - jelet, vagy akármilyen szöveget. Viszont hogy tudom azt meghatározni, hogy üres az adat mező?
Ja, szövegre nem tudok hivatkozni, mert az nem statikus. -
slice14
veterán
-
slice14
veterán
Karma leírta a lényeget.
Ez egy Taskerre készült parser. A taskerben pedig van JSON parse. Egyébként jQuery-t is lehet használni, csak ki kell választani mint plusz library.
A cél a sebesség volt, illetve, h olyan laikusok, mint én is könnyen tudjanak a kódhoz plusz részt írni a későbbiekben, ha szükség lesz rá.
Szerintem ez sikerült hála slice14-nek, Karmának és a többieknek a Js topikból!

Ui.: egyébként amit a rawdata változóba raktál(fájl tartalma) azt a tasker beépített parancsaival egy sorral is meg lehet oldani. ("readFile('xy')")

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.
-
slice14
veterán
Tudok a js-be a convert parancsnak változót adni, hogy a weather-t áztkonvertálja htmltoText-é? Több helyen kéne konvertálni és nem akarom átírni másik változóba a weather-t ha nem muszáj.
currentWeather = currentObservation.getWeather(),
Vagy nem kell változó, csak beírom a () közé a parancsot?
-
slice14
veterán
-
slice14
veterán
Hat, hogy oszinte legyek sokkal jobb

Meg van 1-2 aprosag amit mashogy csinalnek. Peldaul arra nem lehet alapozni, hogy a hordozo kornyezet majd rendelkezik JSON parserrel ezert ha van lehetoseg jQuery-t hasznalni akkor javaslom.
Es akkor:
function getData(fileName) {
var rawData = readFile(),
parsedData;
try {
parsedData = $.parseJSON(rawData);
}
catch (ex) {
console.error(PARSE_DATA_ERR, ex);
}
return parsedData || {};
}Ha nincs lehetoseg jQuery-t hasznalni akkor pedig biztos ami tuti ellenorizzetek le, hogy van-e JSON object mint ahogy a jQ is csinalja:
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}Öööööööööööö

Mint mondtam korában is, nem sok közöm volt eddig js-hez.
-
slice14
veterán
-
slice14
veterán
Szerkesztettem az elozot

Majd ezt ugy lehetne felhasznalni, hogy
var file = readFile('/sdcard/Tasker/temp/weather.json'),
rawData = JSON.parse(file),
Weather = new Weather(rawData);
var sunPhase = Weather.getSunPhase(),
sunRise = sunPhase.getSunrise(),
sunriseHour = sunRise.getHour();
setGlobal('%Napfelkel1', sunriseHour);sot...
var settings = {
'%Napfelkel1': sunriseHour,
'masbizbasz': sunriseMinute,
'megintmasbizbasz': sunriseSecond
...
};
Object.keys(settings).forEach(function(key) {
setGlobal(key, settings[key]);
});Ezzel csak az a baj, hogy a szükséges split-eknél probléma lehet.
Vagy csak én nem értem...
-
slice14
veterán
Szerkesztettem az elozot

Majd ezt ugy lehetne felhasznalni, hogy
var file = readFile('/sdcard/Tasker/temp/weather.json'),
rawData = JSON.parse(file),
Weather = new Weather(rawData);
var sunPhase = Weather.getSunPhase(),
sunRise = sunPhase.getSunrise(),
sunriseHour = sunRise.getHour();
setGlobal('%Napfelkel1', sunriseHour);sot...
var settings = {
'%Napfelkel1': sunriseHour,
'masbizbasz': sunriseMinute,
'megintmasbizbasz': sunriseSecond
...
};
Object.keys(settings).forEach(function(key) {
setGlobal(key, settings[key]);
});Ezt előszőr meg kell emésszem.

-
slice14
veterán
Hat ez csak nevleg JS ugy megemlitem
. Ennyire csunya JS kodot en meg ritkan lattam (nem mondom, hogy nem, de majdnemNa jo nem leszek negativ
)
Amugy futtasd at a kodod ezen -> [link]
Amugy lehetne, egy csomo otletem van, hogy mivel lehetne szebbe tenni, de mindegyikbol az jonne ki, hogy tanulj egy kis JavaScriptet ^^ Peldaul, ha van idod es kedved, akkor csinalhatnak a Weather kore egy wrapper osztalyt.
pl:
/**
* @typedef {Object} Weather
* @property {CurrentObservation} current_observation
* ...etc
*/
/**
* @param {Weather} rawData
*/
function Weather(rawData) {
/** @type {Weather} */
this.baseData = rawData;
/** @type {CurrentObservation} */
this.currentObservation = rawData.current_observation;
}
/** @returns {CurrentObservation} */
Weather.prototype.getCurrentObservation = function() {
return this.currentObservation || {};
}
etc..Mint írtam, eddig gőzöm nem volt hogy eszik vagy isszák.

-
slice14
veterán
A setGlobal-al lesz belőle tasker-es változó.
Egyébként itt az egész js. Link
Lehet hogy sok fölösleges dolog van benne. A tasker js support oldalból kiindulva kezdtük el a projektet. És a js-ről eddig csak hallottam, de fogalmam se volt arról hogy hogyan működik.
Ha van valami jó ötlet, hogy hogyan lehet rövidíteni rajta. Akkor ne tartsd vissza.
-
slice14
veterán
-
slice14
veterán
köszi, de ezt már próbáltam, talán pont legelsőre és pont a ti projektetek alapján, de nem működik. gondolom a forecast-nál azért működik, mert ott van egy "period":1 stb, és ez alapján csinálja meg (ezt egyébként én is így csináltam meg). de az hourly_forecast-nál ilyen már nincs.
a tasker változóim már mind nagybetűsek egyébként, használok is párat másholja és #5313 Karma
köszi nagyon szépen működik a szélirányos dologNa meglestem az xml verziót, ajánlom neked is.
Hour1 = Weather.hourly_forecast.forecast[0].FCTTIME.hour;
Hour1fok = Weather.hourly_forecast.forecast[0].temp.metric;
Hour1idojaras = Weather.hourly_forecast.forecast[0].condition;
Hour1szelirany = Weather.hourly_forecast.forecast[0].wdir.dir;(A Weather az én fájlom változóneve.)
Tehát nézd az xml verziót gépen, ott tudod nyitni-csukni a tömböket.
Persze ha nem kel semmit csinálni az adott adattal, askkor setGlobal-al adj neki tasker változó nevet.
Pl: setGlobal('%Hour1',Weather.hourly_forecast.forecast[0].FCTTIME.hour);
-
slice14
veterán
Esetleg így próbáld.
valami1 = ...........FCTTIME[0].hour;
valami2 = ...........FCTTIME[1].hour;stb, stb....
sDe pl a forecast-ot is így csináltuk meg. A [közötti] szám dönti el hogy hanyadik bejegyzést szedje ki. A [0] az első ilyen részt veszi ki a tömbből.
Remélem hogy nem írtam el semmit.
Ja és ajánlom a Nagy kezdőbetűs változóneveket. Így másik projekt is tudja őket használni.
-
slice14
veterán
a következő 8 órára szeretném megkapni a hőmérsékletet, eső valószínűségét és a kondíciót. de mivel mindegyik altömb FCTTIME-al kezdődik, az hour értéke pedig mindig ugrik egyet óránként így nem tudom mi alapján megfogalmazni h első órára vonatkozó hőmérséklet, eső, kondíció, majd másodikra stb.
biztos egyszerű, de nagyon nem állt még rá az agyamEsetleg így próbáld.
valami1 = ...........FCTTIME[0].hour;
valami2 = ...........FCTTIME[1].hour;stb, stb....
sDe pl a forecast-ot is így csináltuk meg. A [közötti] szám dönti el hogy hanyadik bejegyzést szedje ki. A [0] az első ilyen részt veszi ki a tömbből.
Remélem hogy nem írtam el semmit.
-
slice14
veterán
-
slice14
veterán
-
slice14
veterán
Hogy tudok egy szövegrészt lecserélni js-ben? Már mint hogy arra helyettesítse be (°C = fok).
-
slice14
veterán
Azt jelenti, hogy típusosan is egyenlő. Mivel a js gyengén típusos nyelv, ezért az == becsapós lehet, illetve teljesítményben is rosszabb, mert "1" == 1 re is igazat ad, és ehhez a rendszer még cast-olja is az adatokat az ellenőrzéshez.
Ellenben az "1" === 1 nem lesz igaz, mert az egyik egy szöveg, a másik egy szám, és ez az összehasonlítás jóval gyorsabb tud lenni.
A == használata kerülendő, noha a fejlesztők többsége így használja, mert kényelmesebb (elfed hibákat, és mégis működik), illetve ennyivel is kevesebbet kell gépelni, de ez attól még nem lesz helyes, mert a többség így használja.Azt hiszem így már kezd tisztulni.
Köszi

-
slice14
veterán
Szerintem ez a félregexes megoldás nem annyira szerencsés. Mondjuk hogy helyes-e, azt ki tudod próbálni JSFiddle-ön vagy a Chrome konzoljában (F12) - első blikkre nekem nem tűnik annak, de ez nem jelent semmit

Így szerintem tisztább és olvashatóbb lenne:
if (Elorejelzes1td2.indexOf('legmagasabb') === -1) {
setGlobal('%Elorejelzes1td'," ");
}
else {
setGlobal('%Elorejelzes1td',Elorejelzes1td2);
}Vagy egy sorban:
setGlobal('%Elorejelzes1td', Elorejelzes1td2.indexOf('legmagasabb') === -1 ? " " : Elorejelzes1td2);
Bocsi a hiányosságom miatt. De megkérdezhetném hogy mit jelent a 3= jel?
Mert oké hogy müxik, de nem értem.
-
slice14
veterán
Szerintem ez a félregexes megoldás nem annyira szerencsés. Mondjuk hogy helyes-e, azt ki tudod próbálni JSFiddle-ön vagy a Chrome konzoljában (F12) - első blikkre nekem nem tűnik annak, de ez nem jelent semmit

Így szerintem tisztább és olvashatóbb lenne:
if (Elorejelzes1td2.indexOf('legmagasabb') === -1) {
setGlobal('%Elorejelzes1td'," ");
}
else {
setGlobal('%Elorejelzes1td',Elorejelzes1td2);
}Vagy egy sorban:
setGlobal('%Elorejelzes1td', Elorejelzes1td2.indexOf('legmagasabb') === -1 ? " " : Elorejelzes1td2);
A helyességen azt értettem, hogy úgy is kiírná az adatokat, ha lát olyat hogy legmagasabb.
Egyébként átírtam a javaslatod alapján. Ez így jobb megoldásnak tűnik. Köszi

-
slice14
veterán
Sziasztok.
Azt szeretném megkérdezni hogy ez a js részlet helyes-e?
Elorejelzes1td = Weather.forecast.txt_forecast.forecastday[0].fcttext_metric;
Elorejelzes1td2 = Elorejelzes1td; if (Elorejelzes1td2 != /"+'legmagasabb'+"/) {
setGlobal('%Elorejelzes1td'," ");
}
else { setGlobal('%Elorejelzes1td',Elorejelzes1td2);Az lenne a cél, hogy ha tartalmazza a legmagasabb szót az Elorejelzes1td, akkor kiírja a tartalmát. De ha nem, akkor rakjon be egy szóközt.
Bocsi ha nem jó helyre írok, de js. Akkor is ha tasker.
-
slice14
veterán
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);Én is köszönöm újból a segítséget.

-
slice14
veterán
Én is köszönöm a segítséget.
Ja és Mr Dini-nek is, hogy feldobta a kérdést.

Ú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 Tabletek, E-bookok Nyomtatók, szkennerek 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
- Google Pixel topik
- PlayStation 5
- Mesterséges intelligencia topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Battlefield 6
- Autós topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Xbox tulajok OFF topicja
- Apple MacBook
- További aktív témák...
- Mac Pro 6,1 2013 Late
- GAMER PC! i7-14700 / RTX 5080 / 32GB DDR5 / 1TB NVMe / 1000w Gold / BeszámítOK !
- ASUS ROG Strix SCAR 16 / Ultra 9 275HX / RTX5090 / 32GB / 2TB NVMe! BeszámítOK
- 27% - Corsair RMx Series RM1000x 1000W 80 PLUS Gold (CP-9020271-EU) Tápegység!
- White AM4 félkonfig! ASUS ROG B550-A + Ryzen 9 5950X BOX + 32GB DDR4 3600Mhz CL17
- Xiaomi Redmi 15 / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- Új! Lenovo Yoga PRO 9 Ultra 9 285H 32GB RAM 2TB SSD RTX 5060 8GB 16" QHD+ OLED 3év Prémium GAR
- Bomba ár! Lenovo ThinkPad T15 G1 - i7-10G I 16GB I 256GB SSD I 15,6" FHD I Cam I W11 I Gari!
- Jawbone Up okoskarkötő, aktivitásmérő
- i9-11900K / RTX 3080 / Z590i / 32GB 4000MHz / 1TB NVMe / 750w GOLD! BeszámítOK
Állásajánlatok
Cég: aiMotive Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest






)





