Hogyan tudom ellenőrizni, hogy van-e adott nevű adat egy javascript struktúrában?
Mondjuk ilyen adataim vannak:
var data = [];
data.push({title:"akarmi", link:" [link]
És szeretném tudni, hogy mondjuk a data[i] elemnem van-e ténylegesen title megadva. Hogyan ellenőrizhetem?
nem , nekem nem olyan van hogy valami üres (""), hanem hogy a title adott a link meg nem, vagy fordítva, azaz:
data.push({link:" [link]
data.push({title:"akarmi"});
Ha citromost válaszát értelmezted volna meg is lenne a válaszod:
if (typeof data[0].title !== 'undefined') {
//létezik
} else {
//nem létezik
}
A
typeof data[0].title !== 'undefined'
teljesen korrekt ellenőrzés, ez az, ami szerintem a legjobban ajánlható a te kérdésedre.
Egy másik válaszoló által írt
data[0].title
is megfelel, mert objektum nem létező elemére való hivatkozás esetén nem kapsz hibát. De ez csak akkor tér vissza igazzal, ha az értéke nem 0-vá konvertálódik, vagyis nem lehet (int)0, (string)"" és (bool)false sem, mert akkor is nem létezőnek fogod látni. Ez sok esetben nem okoz problémát, tehát használható, de a típusellenőrzés ezt kiküszöböli.
Igazából a
typeof data[0] !== 'undefined' && data[0].title != ''
kettős ellenőrzés az előbbiekre való tekintettel felesleges, mivel a feltétel második tagja szintén típuskonverziót fog okozni, vagyis (int)0, (string)"" és (bool)false értékekre is hamissal tér vissza, vagyis nem létezőnek fogod látni. De arra meg ott az egyszerűbb megoldás is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!