×
COOKIES
Prezeraním tejto stránky dochádza k spracovaniu cookies. Spracovaniu cookies zabránite v nastaveniach internetového prehliadača alebo nezobrazovaním tejto stránky v internetovom prehliadači.
Vytvárame riešenia

Ako rýchlo zmenšiť pole (JavaScript)

Človek sa neustále učí nové veci, a tak aj napriek niekoľkoročnej práce s jazykom JavaScript som sa opäť niečo nové naučil, o čo sa chcem podeliť v tomto článku.
Všetko to začalo, keď som si pozrel polyfilly k metódam shift() a unshift(). Tu som našiel zaujímavosť, o ktorej som doteraz nevedel. Tou zaujímavosťou bol spôsob ako rýchlo zmenšiť pole.
Príklad: Vytvorenie metód shift() a unshift().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (!Array.prototype.shiftProto) {
Array.prototype.shiftProto = function () {
firstElement = this[0];
this.reverse();
this.length = Math.max(this.length - 1, 0);
this.reverse();
return firstElement;
}
}
if (!Array.prototype.unshiftProto) {
Array.prototype.unshiftProto = function () {
this.reverse();
var i = arguments.length - 1;
for (i; i >= 0; i--) {
this[this.length] = arguments[i];
}
this.reverse();
return this.length
}
}
var arr = [1, 2, 3, 4];
console.log(arr.shiftProto(), arr);
console.log(arr.unshiftProto(10, 20, 30), arr);
V uvedenom príklade som zistil, že ak zmením dĺžku poľa, zmením tým aj celé pole. Zmenšiť pole je tak možné obyčajnou zmenou hodnoty vo vlastnosti length. Číslo reprezentujúce dĺžku poľa musí byť menšie ako aktuálna hodnota.
Príklad: Zmenšenie poľa na dva prvky.
1
2
3
var arr = [1, 2, 3, 4];
arr.length = 2;
console.log(arr);

Záver

Číslo reprezentujúce dĺžku poľa môže byť celé číslo, alebo aj reálne číslo, ktoré je rovnaké ako celé číslo, teda desatinné miesto končí nulou, napr. length = 2.0;


JavaScript,Array,length,shift(),unshift(),polyfill
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších