Javascript-метод Array.slice: тънкости на използване

Масивите в езика на javascript имат много специфични полезни методи, които улесняват манипулирането на данни. Някои от тези функции променят изходния обект, други създават модифицирани или точни копия. Последната група принадлежи към полезния метод Array.slice (). Тя ви позволява да избирате от масив всяка подмаса и да я използвате поотделно.

Синтаксисът на метода



array.slice ([begin [, end]])

Както можете да видите, методът приема два аргумента, но никой от тях не се изисква пропуснати.

Първият параметър показва позицията на началото на желания субмастер, а вторият е позицията на елемента, на който ще бъде спряно извличането. Следователно те трябва да представляват цели числа.

При липса на аргументкрай , методът ще работи до края на изходния масив.

При липса на два параметърамасивът- просто ще бъде напълно копиран.

Функцията може да приеме и отрицателни аргументи, като броят на позициите започва в края на масива.

Да разгледаме работата на методаslice ()на примера на прост масив от числа:

нека arr = [5, 4, 3] 2, 1];

Получаване на субмастер от първите три елемента:

console.log (arr.slice (0 3));

Тук първият аргумент е 0. Той определя функцията, която трябва да се стартира от нулевата позиция. А вторият - 3 казва, че трябва да спрете на елемент с индекс 3, без да го включите в крайната извадка. В резултат на това в конзолата ще се покаже масив, включително 5 4 и 3.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

& lt; script & gt; (Adsbygoogle = window.adsbygoogle || []) Push ({}).
[thumb] http://hi-news.pp.ua/uploads/posts/2018-06/javascript-metod-arrayslice-tonkosch-vikoristannya_181.jpeg

Получаване на субмастер от последните три елемента:

console.log (arr.slice (-3));

За да се изпълни тази задача, само един аргумент е достатъчен, за да посочи началото на извадката. Отрицателната стойност предизвиква обратното броене от края на масива. В нашия случай това е елемент със стойност 3. Крайният масив включва числата 321.

Изчислена стойност

Характеристиката на метода javascriptarray.slice() е, че тя не променя обекта, в контекста на който е бил наречен. Това означава, че след като всички извършени операции, масивътarrостава непроменен и може да се използва от програмата за други цели.

Функцията на функцията е да създаде нов масив, който не е свързан с изхода, и да го запълни с избраните елементи. За да може този масив да бъде използван по-късно, той трябва да бъде записан в променливата.

& lt; скрипт async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; script & gt; (Adsbygoogle = window.adsbygoogle || []) Push ({}).
нека arr = [5, 4, 3, 2, 1];
нека newArr = arr.slice (1 4);

console.log (newArr); //[4, 3, 2]
console.log (arr); //[5, 4, 3, 2, 1]

От примера можем да видим, че обектътarrостава непроменен. Резултатът от метода е новият масивnewArr .

[thumb] http://hi-news.pp.ua/uploads/posts/2018-06/javascript-metod-arrayslice-tonkosch-vikoristannya_292.jpeg

Копирни масиви

Този механизъм ви позволява автоматично да създавате копия без ръчно избиране на всеки елемент от последователността.

нека клон = arr.slice (); 
console.log (клон); //[5, 4, 3, 2, 1]

Извикването на метод без аргументи започва да се копира от началото и края на масиваarr . Полученият клонинг е напълно независим от своя източник и ви позволява да манипулирате данни без страх да ги загубите завинаги.

клон
++;
console.log (клон); //[5, 4, 4, 2, 1]
console.log (arr); [5, 4, 3, 2, 1]

Тук е важно да се помни, че обектите на javascript се предават чрез препратка. Следователно, ако елементите на последователността са обекти, тогава тяхната промяна в копието ще доведе до същата промяна в изходния код.

нека arr = [
{a: 1},
[2,3]
];

//копиране на изходния масив
нека newArr = arr.slice ();
console.log (newArr); //[{a: 1}, [2, 3]]

//промяна на копието
newArr.a = 7;
console.log (newArr); //[{a: 7}, [2, 3]]

//изходният масив също е променен
console.log (arr); //[{a: 7}, [2, 3]]


Без страхове е възможно да се работи с стойности на редове, числа и булеви оператори, тъй като те са напълно копирани в нова последователност. В същото време добавянето и премахването на елементи в клониран масив не влияе на изхода.

Свързани публикации