×
Creating solutions

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
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest