03.11.2014 Views

Introduccion a AJAX - Web de jEsuSdA 8

Introduccion a AJAX - Web de jEsuSdA 8

Introduccion a AJAX - Web de jEsuSdA 8

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introducción a <strong>AJAX</strong><br />

Capítulo 3. JavaScript avanzado<br />

},<br />

inspect: function() {<br />

return '[' + this.map(Object.inspect).join(', ') + ']';<br />

}<br />

});<br />

El código anterior aña<strong>de</strong> a la clase Array <strong>de</strong> JavaScript varias utilida<strong>de</strong>s que no disponen los<br />

arrays por <strong>de</strong>fecto: obtener (sin extraerlo) el primer o último elemento <strong>de</strong>l array, filtrar sus<br />

valores, <strong>de</strong>terminar la posición <strong>de</strong> un elemento, borrar el array, etc.<br />

Ejercicio 3<br />

Exten<strong>de</strong>r el objeto Array para que permita añadir nuevos elementos al final <strong>de</strong>l array:<br />

var array1 = [0, 1, 2];<br />

array1.anadir(3);<br />

// array1 = [0, 1, 2, 3]<br />

Incluir la opción <strong>de</strong> controlar si se permiten elementos duplicados o no:<br />

var array1 = [0, 1, 2];<br />

array1.anadir(2);<br />

// array1 = [0, 1, 2, 2]<br />

array1.anadir(2, false);<br />

// array1 = [0, 1, 2]<br />

Cualquier clase nativa <strong>de</strong> JavaScript pue<strong>de</strong> ser modificada mediante la propiedad prototype,<br />

incluso la clase Object. Se pue<strong>de</strong> modificar por ejemplo la clase String para añadir un método<br />

que convierta una ca<strong>de</strong>na en un array:<br />

String.prototype.toArray = function() {<br />

return this.split('');<br />

}<br />

La función split() divi<strong>de</strong> una ca<strong>de</strong>na <strong>de</strong> texto según el separador indicado. Si no se indica<br />

ningún separador, se divi<strong>de</strong> carácter a carácter. De este modo, la función anterior <strong>de</strong>vuelve un<br />

array en el que cada elemento es una letra <strong>de</strong> la ca<strong>de</strong>na <strong>de</strong> texto original.<br />

Una función muy común en otros lenguajes <strong>de</strong> programación y que no dispone JavaScript es la<br />

función trim(), que elimina el espacio en blanco que pueda existir al principio y al final <strong>de</strong> una<br />

ca<strong>de</strong>na <strong>de</strong> texto:<br />

String.prototype.trim = function() {<br />

return this.replace(/^\s*|\s*$/g, '');<br />

}<br />

var ca<strong>de</strong>na = " prueba <strong>de</strong> ca<strong>de</strong>na ";<br />

ca<strong>de</strong>na.trim();<br />

// Ahora ca<strong>de</strong>na = "prueba <strong>de</strong> ca<strong>de</strong>na"<br />

La función trim() añadida al prototipo <strong>de</strong> la clase String hace uso <strong>de</strong> las expresiones regulares<br />

para <strong>de</strong>tectar todos los espacios en blanco que puedan existir tanto al principio como al final <strong>de</strong><br />

la ca<strong>de</strong>na y se sustituyen por una ca<strong>de</strong>na vacía, es <strong>de</strong>cir, se eliminan.<br />

www.librosweb.es 50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!