Diferència entre revisions de la pàgina «M06 UF1A3. Teoria»
Salta a la navegació
Salta a la cerca
(Es crea la pàgina amb «=T11. Treballar amb objectes= *https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Working_with_Objects =T12. Keyed collections (col·leccions amb clau)= *https...».) |
m |
||
| Línia 1: | Línia 1: | ||
=T11. Treballar amb objectes= | =T11. Treballar amb objectes= | ||
*https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Working_with_Objects | *https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Working_with_Objects | ||
| − | =T12. | + | =T12. Repàs de prototype= |
| − | *https:// | + | '''prototype''' és una propietat dels objectes String, Number, Date, Array, RegExp,... que ens permet definir un nou mètode a aquests objectes. |
| − | = | + | |
| − | + | '''Ex 1'''. L'objecte Array no té un mètode per fer ''shuffle'' (desordenar). Tenim la següent funció que fa la feina: | |
| − | + | *https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array | |
| − | + | <pre> | |
| + | function shuffle(array) { | ||
| + | let currentIndex = array.length, randomIndex; | ||
| + | |||
| + | // While there remain elements to shuffle... | ||
| + | while (currentIndex != 0) { | ||
| + | |||
| + | // Pick a remaining element... | ||
| + | randomIndex = Math.floor(Math.random() * currentIndex); | ||
| + | currentIndex--; | ||
| + | |||
| + | // And swap it with the current element. | ||
| + | [array[currentIndex], array[randomIndex]] = [ | ||
| + | array[randomIndex], array[currentIndex]]; | ||
| + | } | ||
| + | |||
| + | return array; | ||
| + | } | ||
| + | |||
| + | // Used like so | ||
| + | var arr = [2, 11, 37, 42]; | ||
| + | shuffle(arr); | ||
| + | console.log(arr); | ||
| + | </pre> | ||
| + | A partir d'aquesta funció, creem el mètode ''desordenar()'' dels Array. | ||
| + | <pre> | ||
| + | Array.prototype.desordenar = function() { return shuffle(this) } | ||
| + | </pre> | ||
| + | Comprovem que funciona: | ||
| + | <pre> | ||
| + | var arr = ['a','b','c','d']; | ||
| + | console.log(arr.desordenar()); | ||
| + | </pre> | ||
| + | Ara que ja sabem desordenar arrays, ara desordenarem strings, aprofitant que ja sabem desordenar arrays: | ||
| + | <pre> | ||
| + | String.prototype.desordenar = function() { | ||
| + | var arr=this.split(""); | ||
| + | arr.desordenar(); | ||
| + | return arr.join(""); | ||
| + | } | ||
| + | </pre> | ||
| + | Per exemple, anem a crear el mètode desordenar() que desordeni els caràcters d'una cadena, de forma aleatòria | ||
| + | <pre> | ||
| + | var cad = "supercalifragilisticoespialidoso"; | ||
| + | |||
| + | console.log(cad.desordenar()) | ||
| + | </pre> | ||
{{Autor}}, octubre 2021 | {{Autor}}, octubre 2021 | ||
Revisió del 10:53, 27 oct 2021
T11. Treballar amb objectes
T12. Repàs de prototype
prototype és una propietat dels objectes String, Number, Date, Array, RegExp,... que ens permet definir un nou mètode a aquests objectes.
Ex 1. L'objecte Array no té un mètode per fer shuffle (desordenar). Tenim la següent funció que fa la feina:
function shuffle(array) {
let currentIndex = array.length, randomIndex;
// While there remain elements to shuffle...
while (currentIndex != 0) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex--;
// And swap it with the current element.
[array[currentIndex], array[randomIndex]] = [
array[randomIndex], array[currentIndex]];
}
return array;
}
// Used like so
var arr = [2, 11, 37, 42];
shuffle(arr);
console.log(arr);
A partir d'aquesta funció, creem el mètode desordenar() dels Array.
Array.prototype.desordenar = function() { return shuffle(this) }
Comprovem que funciona:
var arr = ['a','b','c','d']; console.log(arr.desordenar());
Ara que ja sabem desordenar arrays, ara desordenarem strings, aprofitant que ja sabem desordenar arrays:
String.prototype.desordenar = function() {
var arr=this.split("");
arr.desordenar();
return arr.join("");
}
Per exemple, anem a crear el mètode desordenar() que desordeni els caràcters d'una cadena, de forma aleatòria
var cad = "supercalifragilisticoespialidoso"; console.log(cad.desordenar())
creat per Joan Quintana Compte, octubre 2021