- iPhone topik
- Huawei Watch Fit 5 Pro - jó forma
- Apple iPhone 17e – mágnesek ereje
- Honor 600 – kezes, kitartó, költséges
- Yettel topik
- Milyen okostelefont vegyek?
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Samsung Galaxy S21 Ultra - vákuumcsomagolás
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S23 Ultra - non plus ultra
-
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
-
martonx
veterán
Azt kellene belátnod, hogy egy fórumból sosem fogsz megtanulni programozni. Egy-egy kérdésedre kapsz persze választ, és így tovább tudsz lendülni, az amúgy bagatell problémákon, és a végén el tudod mondani, hogy csináltál egy programot, de valóban érteni fogod, hogy miért is működik?
Segítség nélkül újra tudnád írni? Szóval a bagatell dolgok megkérdezése helyett, bizony elő kellene venned valami js-es online doksit, és legalább az alapokkal tisztába kerülnöd, ha már ez a választott nyelv, amin el akartál indulni.
-
Zedz
addikt
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.
-
Zedz
addikt
-
martonx
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.ajánlom figyelmedbe az undefined értéket. Javascript fura szerzet, mert ott a null azt jelenti, hogy van értéke valaminek, csak éppen az az érték null. Az undefined az ami azt jelenti, hogy az a valami nem is létezik.
typeOf(valami) === "undefined" mondjuk lehet a feltételed. -
Mr Dini
addikt
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.
Írtam privit.
Vigyázz arra, h csak a Taskerben egyenlő a (változó) értéke a nevével, a JSben null és az ifben nem kell '-közé tenni a null-t. Gondolom tudod, de azért leírtam biztos, ami biztos alapon, mert én épp most szívtam vele. :/

-
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?
-
Jim-Y
veterán
-
Jim-Y
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 );
} -
Karma
félisten
-
Jim-Y
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]);
}); -
Jim-Y
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.
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.. -
Jim-Y
veterán
Na 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);
Amugy mi ez a setGlobal?
A Weather.hourly_forecast.forecast[0] 4,5x van leirva ami min. 3,4 felesleges lookup. Illetve safe access pattern ha nem akarjatok hogy meghaljon az app ha hianyoznak az adatok a json strukturaban. Egyebkent camelCase ffs

-
ltpalermo
csendes tag
Na 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);
és működik, köszi
kb. ez az egyetlen hely, ahová nem próbáltam a [0]-t beszúrni
-
ltpalermo
csendes tag
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.
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 dolog -
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.
-
Karma
félisten
-
martonx
veterán
-
sztanozs
veterán
-
fordfairlane
veterán
A típuskonverzió == és != esetén elég furcsán lett implementálva a Javascriptben, ezért használata minden esetben kerülendő. A legtöbb programozó azért használja ezt az operátort, mert a többi C-forma nyelvekben nincs vele különösebb probléma, vagy nem ilyen mértékű. A Javascript specialitásai nem mindenki számára ismertek.
-
martonx
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. -
Zedz
addikt
-
Karma
félisten
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.
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);
Ú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
- iPhone topik
- Huawei Watch Fit 5 Pro - jó forma
- Apple MacBook
- Apple iPhone 17e – mágnesek ereje
- Visszatérés az aranykorba: Heroes of Might and Magic: Olden Era Early Access
- Milyen videókártyát?
- Videós, mozgóképes topik
- Milyen monitort vegyek?
- sziku69: Fűzzük össze a szavakat :)
- Spórolós topik
- További aktív témák...
- Macbook Pro 16" A2485 2021 M1 MAX 32/1TB 32 GPU Astro (2) (39 ciklus 97% akku)
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- i9-9900KF + RTX 2060 SUPER Gamer PC
- HP EliteBook 6 G1 Ryzen 5 PRO 2.5 ÉV GARANCIA Csak 9 ciklus!
- AKCIÓ!!! GAMER PC: i5-12400F/13400F/14400F +RTX 5060 +16GB DDR4! GARANCIA/SZÁMLA (a Te nevedre)!
- Nvidia Quadro K2200 4GB GDDR5 PCi-e videokártya 2xDP, 1xDVI
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- Lego replika Tokyo 20051 építőkészlet doboz nélkül
- Asus ROG MAXIMUS Z690 EXTREME Alaplap!
- GYÖNYÖRŰ iPhone 15 128GB Black -2 ÉV GARANCIA - Kártyafüggetlen, MS5443
Állásajánlatok
Cég: aiMotive Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest






)




