Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний символ Π² строкС? β€” efim360.ru

Β 

Π•ΡΡ‚ΡŒ строка:

var stroka = "Subaru/"

Нам Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· этой строки послСдний символ косой Π»ΠΈΠ½ΠΈΠΈ Β«/Β». Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Β 

Π’ΠΈΠ΄Π΅ΠΎ Π½Π° русском языкС

Π’ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π° способа удалСния послСднСго символа строки. ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² консоль Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Google Chrome.

Β 

РСшСниС β„– 1 β€” Π§Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ slice()

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ slice(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся нашим экзСмпляром строки ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° -ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° String.

String.prototype.slice (

start, end )

ΠœΠ΅Ρ‚ΠΎΠ΄ slice()Β ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, start ΠΈ end, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° прСобразования этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² String, начиная с Π½Π°Ρ‡Π°Π»Π° индСкса startΒ ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° индСкса end, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎΒ (ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° String, Ссли end являСтся undefined). Если start ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΎΠ½ обрабатываСтся ΠΊΠ°ΠΊ sourceLength + start, Π³Π΄Π΅ sourceLength β€” Π΄Π»ΠΈΠ½Π° строки. Если end ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΎΠ½ обрабатываСтся ΠΊΠ°ΠΊ sourceLength + end, Π³Π΄Π΅ sourceLength β€” Π΄Π»ΠΈΠ½Π° строки. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ String, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ String.

Команда ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ послСднСго символа строки:

stroka.slice(0, -1)

ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ slice(). Π’ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ start ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«0Β» β€” это индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта строки с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ Π½Π°Ρ€Π΅Π·Π°Π½ΠΈΠ΅ Π½Π° кусочки (Β«ΠΊΡƒΡΠΎΡ‡Π½ΠΈΡ‡Π°Ρ‚ΡŒΒ»). Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ end ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«-1Β«.

Π£Π΄Π°Π»ΠΈΠ»ΠΈ послСдний элСмСнт ΠΈΠ· строки β€” JavaScript

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ end ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ (sourceLength + end).

Π’ нашСм случаС (stroka.length + (-1)). Π­Ρ‚ΠΎ (7 β€” 1) = 6. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ end стал Ρ€Π°Π²Π΅Π½ 6.

Π‘ΠΈΠΌΠ²ΠΎΠ» косой Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΊΠΎΠ½Ρ†Π΅ строки β€” JavaScript

Под индСксом 6 Π² нашСй исходной строкС находится косая линия, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ slice() Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Π΅Ρ‘ Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ строку. ИндСкс 6 Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice().

Π’ΠΠ–ΠΠž! ΠœΠ΅Ρ‚ΠΎΠ΄ slice() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ строку. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ строка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ slice()Β Π½Π΅ измСняСтся.

Β 

Π‘Π²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄

МоТно Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ стандартный Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² языка JavaScript для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²-ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² String ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный.

String.prototype.delOneLast = function () {
   return this.slice(0, -1)
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° delOneLast() Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… строках:

Π‘Π²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ delOneLast для строк β€” JavaScript

Β 

Бпособ β„– 2 β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ replace() ΠΈ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

МоТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рСгулярными выраТСниями ΠΈ произвСсти сопоставлСниС строки ΠΏΠΎ послСднСму символу этой самой строки.

var stroka = "Subaru/"
stroka.replace(/.$/,"")
"Subaru"

Β 

Β 

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠœΠ΅Ρ‚ΠΎΠ΄ replace() всСгда ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

  1. searchValue β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для поиска
  2. replaceValue β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π·Π°ΠΌΠ΅Π½Ρ‹

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ объявлСниС рСгулярного выраТСния Π² JavaScript обозначаСтся двумя косыми линиями / /. ΠœΠ΅ΠΆΠ΄Ρƒ этими линиями записываСтся конструкция сопоставлСния β€” шаблон рСгулярного выраТСния (pattern).

Π£ шаблона достаточно большой синтаксис ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ, Π½ΠΎ Π² нашСм случаС достаточно Π·Π½Π°Ρ‚ΡŒ Π΄Π²Π° производства:

  1. УтвСрТдСния (Assertion)
  2. Атомы (Atom)

Π—Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° $ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ β„– 2 ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ строки.

Π—Π½Π°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠΈ . ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π°Ρ‚ΠΎΠΌΡƒ β„– 2 ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ любой символ.

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. ΠœΡ‹ мСняСм Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ строку. По смыслу происходит ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, хотя ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ это опСрация Π·Π°ΠΌΠ΅Π½Ρ‹.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠœΠ΅Ρ‚ΠΎΠ΄ replace ΠΈ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” JavaScript

Когда ΠΌΡ‹ Π·Π°ΠΊΠΈΠ½Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° replace() это рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ³Π΄Π° Π² строкС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ символ Β«/Β» ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° Β«Π½ΠΈΡ‡Π΅Π³ΠΎΒ». Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ replace() Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π½Π°ΠΌ Π½ΠΎΠ²ΡƒΡŽ строку Π±Π΅Π· послСднСго символа.

Β 

ΠœΠ΅Ρ‚ΠΎΠ΄ exec() для рСгулярного выраТСния

МоТно провСсти сопоставлСниС шаблона рСгулярного выраТСния ΠΏΠΎ исходной строкС.

/.$/.exec("Subaru/")

Π’Π°ΠΊΠΎΠ΅ сопоставлСниС ΠΏΠΎ строкС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°ΠΌ массив. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив. Π’ Π½Ρ‘ΠΌ Π΅ΡΡ‚ΡŒ строковыС свойства.

РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ нашло послСдной символ строки β€” JavaScript

Π§Ρ‚ΠΎ нас интСрСсуСт Π² этом массивС?

  1. ЗначСния свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ цСлочислСнными индСксами.
  2. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Β«indexΒ»

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ свойством Β«indexΒ» Ρ€Π°Π²Π½ΠΎ числу 6 (ΡˆΠ΅ΡΡ‚ΡŒ). Π­Ρ‚ΠΎ индСкс ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ символа, подходящСго ΠΏΠΎΠ΄ сопоставлСниС шаблона рСгулярного выраТСния. Π­Ρ‚ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся косая линия.

Β 

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ

Π£ Π»ΡŽΠ±Ρ‹Ρ… экзСмпляров строк имССтся свойство Β«lengthΒ«. Оно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов Π² этой строкС. К соТалСнию, Π΅Π³ΠΎ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠΈ свойства Β«lengthΒ» ΠΊΠ°ΠΊ Ρƒ массивов. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ‹ строки Π½Π΅ повлияСт Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… символов.

Β 

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдниС 5 (ΠΏΡΡ‚ΡŒ) символов строки?

"ΠΊΠΎΡ€Π°Π±Π»ΠΈΠΊ".slice(0,-5)
"ΠΊΠΎΡ€"

"ΠΊΠΎΡ€Π°Π±Π»ΠΈΠΊ".replace(/.{5}$/,"")
"ΠΊΠΎΡ€"
Π£Π΄Π°Π»ΠΈΠ»ΠΈ послСдниС 5 символов Π² строкС β€” JavaScript

Β 

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ссылки

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ ECMAScript β€” Π Π°Π·Π΄Π΅Π» Β«22.1.4 Properties of String InstancesΒ» β€” https://tc39.es/ecma262/#sec-properties-of-string-instances

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π² строкС?

JavaScript | Π‘Ρ‚Ρ€ΠΎΠΊΠΈ (String)

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ страница стандарта ECMAScript β€” ΠžΠ±ΡŠΠ΅ΠΊΡ‚ String β€” https://tc39.

es/ecma262/#sec-string-objects

ΠœΠ΅Ρ‚ΠΎΠ΄ slice() β€” https://tc39.es/ecma262/#sec-string.prototype.slice

15 ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами Π² JavaScript

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: 15 must-know JavaScript array methods in 2020, Π°Π²Ρ‚ΠΎΡ€ Ibrahima Ndaw

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² JavaScript β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнтов (часто ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ…). Π£ массивов Π΅ΡΡ‚ΡŒ встроСнныС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для добавлСния, удалСния ΠΈ получСния элСмСнтов, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°. Π›ΡŽΠ±ΠΎΠΌΡƒ JavaScript-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ стоит Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ 15 встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Array.prototype:

  • forEach()
  • find()
  • findIndex()
  • some()
  • every()
  • includes()
  • reverse()
  • map()
  • filter()
  • reduce()
  • sort()
  • concat()
  • fill()
  • flat()
  • flatMap()

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-коллбэк, которая вызываСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ для Ρ€Π°Π·Π½Ρ‹Ρ… элСмСнтов массива. Для удобства Π²ΠΎ всСх ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стрСлочныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ синтаксисом:

// вмСсто Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
myAwesomeArray.some(test => {
  if (test === "d") {
    return test
  }
})
// ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ
myAwesomeArray.some(test => test === "d")

Коллбэк Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС ΠΈ сам массив. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (сам элСмСнт), Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: undefined

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ просто выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-коллбэк для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² массивС.

const myAwesomeArray = [
  { id: 1, name: "john" },
  { id: 2, name: "Ali" },
  { id: 3, name: "Mass" },
]
myAwesomeArray.
forEach(element => console.log(element.name)) // john // Ali // Mass

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ подходящий элСмСнт массива ΠΈΠ»ΠΈ undefined

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэк Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ true, Ссли элСмСнт соотвСтствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ критСриями, ΠΈΠ»ΠΈ

false, Ссли Π½Π΅ соотвСтствуСт. Если вСрнулся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ true, итСрация прСкращаСтся. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° становится Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ элСмСнт.

const myAwesomeArray = [
  { id: 1, name: "john" },
  { id: 2, name: "Ali" },
  { id: 3, name: "Mass" },
]
myAwesomeArray.find(element => element.id === 3) // {id: 3, name: "Mass"}
myAwesomeArray.find(element => element.id === 7) // undefined

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ подходящСго элСмСнта массива ΠΈΠ»ΠΈ

-1

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find, Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ сам элСмСнт, Π° Π΅Π³ΠΎ индСкс Π² исходном массивС.

const myAwesomeArray = [
  { id: 1, name: "john" },
  { id: 2, name: "Ali" },
  { id: 3, name: "Mass" },
]
myAwesomeArray.findIndex(element => element.id === 3) // 2
myAwesomeArray.findIndex(element => element.id === 7) // -1

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: true ΠΈΠ»ΠΈ false

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π² массивС хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Если функция-коллбэк Π²Π΅Ρ€Π½Π΅Ρ‚ true, Ρ‚ΠΎ итСрация ΠΏΠΎ элСмСнтам остановится ΠΈ вСсь ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ true. Если для всСх элСмСнтов Π²Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒ false, Ρ‚ΠΎ вСсь ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½Π΅Ρ‚ false.

const myAwesomeArray = ["a", "b", "c", "d", "e"]
myAwesomeArray.some(test => test === "d") // true

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: true ΠΈΠ»ΠΈ false

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива соотвСтствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС, Ссли функция-коллбэк Π²Π΅Ρ€Π½Π΅Ρ‚ true для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, Π² ΠΈΠ½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ false.

const myAwesomeArray = ["a", "b", "c", "d", "e"]
myAwesomeArray.every(test => test === "d") // false
const myAwesomeArray2 = ["a", "a", "a", "a", "a"]
myAwesomeArray2.every(test => test === "a") // true

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для сравнСния, индСкс, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ поиск (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 0)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: true ΠΈΠ»ΠΈ false

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ some, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² массивС Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ подходящий ΠΏΠΎΠ΄ условиС элСмСнт. Однако Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ some ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для сравнСния. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строгоС.

const myAwesomeArray = [1, 2, 3, 4, 5]
myAwesomeArray.includes(3) // true
myAwesomeArray.includes(8) // false
myAwesomeArray.includes('3') // false

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Β«ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ массив»

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π΄Π°, Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€ΠΎΡ‚Β» массива происходит Β«Π½Π° мСстС», Π±Π΅Π· создания ΠΊΠΎΠΏΠΈΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ порядок слСдования элСмСнтов массива β€” Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Β» Π΅Π³ΠΎ. ПослСдний элСмСнт становится ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, прСдпослСдний β€” Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΈ Ρ‚. Π΄.

const myAwesomeArray = ["e", "d", "c", "b", "a"]
myAwesomeArray.reverse() // ['a', 'b', 'c', 'd', 'e']

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π½ΠΎΠ²Ρ‹ΠΉ массив Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρ‹, состоящий ΠΈΠ· ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтов старого

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π½Π΅Ρ‚

Ѐункция-коллбэк ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ элСмСнт исходного массива ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ элСмСнт для Π½ΠΎΠ²ΠΎΠ³ΠΎ массива.

const myAwesomeArray = [5, 4, 3, 2, 1]
myAwesomeArray.map(x => x * x) // [25, 16, 9, 4, 1]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π½ΠΎΠ²Ρ‹ΠΉ массив, состоящий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… элСмСнтов исходного

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π½Π΅Ρ‚

Ѐункция-коллбэк Π΄ΠΎΠ»ΠΆΠ½Π° Β«Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒΒ» элСмСнты исходного массива, возвращая для Π½ΠΈΡ… true (элСмСнт удовлСтворяСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ массивС) ΠΈΠ»ΠΈ false (элСмСнт Π½Π΅ удовлСтворяСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ).

const myAwesomeArray = [
  { id: 1, name: "john" },
  { id: 2, name: "Ali" },
  { id: 3, name: "Mass" },
  { id: 4, name: "Mass" },
]
myAwesomeArray.filter(element => element.name === "Mass")
// [ {id: 3, name: "Mass"}, {id: 4, name: "Mass"} ]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ аккумулятора

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Β«Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» аккумулятора

Коллбэк этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ массиву ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт, Π½ΠΎ ΠΈ Β«Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» β€” accumulator. Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² зависимости ΠΎΡ‚ значСния элСмСнта ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Β«Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся ΠΈΠΌΠ΅Π½Π½ΠΎ аккумулятор, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π²ΠΎ всСх коллбэках.

Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° являСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ аккумулятора, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π² коллбэк для самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива. Если это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ ΠΈΠΌ станСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива, Π° ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ начнСтся со Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.

const myAwesomeArray = [1, 2, 3, 4, 5]
myAwesomeArray.reduce((accumulator, value) => accumulator * value)
// 1 * 2 * 3 * 4 * 5 = 120

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ для сравнСния Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: отсортированный массив

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π΄Π°, сортировка происходит Β«Π½Π° мСстС» Π±Π΅Π· создания ΠΊΠΎΠΏΠΈΠΈ массива

Ѐункция-ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ элСмСнты исходного массива ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ (порядок сравнСния зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки). Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт условно «мСньшС» Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄Ρ‚ΠΈ Π² отсортированном массивС ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ, ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ любоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число. Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт «большС» Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число. Если ΠΆΠ΅ элСмСнты условно Β«Ρ€Π°Π²Π½Ρ‹Β», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΡ… порядок Π² отсортированном массивС Π½Π΅ Π²Π°ΠΆΠ΅Π½, функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 0.

const myAwesomeArray = [5, 4, 3, 2, 1]
// Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ
myAwesomeArray. sort((a, b) => a - b) // [1, 2, 3, 4, 5]
// Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ
myAwesomeArray.sort((a, b) => b - a) // [5, 4, 3, 2, 1]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: массивы для объСдинСния с исходным (количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π½ΠΎΠ²Ρ‹ΠΉ массив, состоящий ΠΈΠ· элСмСнтов всСх ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… массивов

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π½Π΅Ρ‚

ΠœΠ΅Ρ‚ΠΎΠ΄ просто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ нСсколько массивов Π² ΠΎΠ΄ΠΈΠ½

const myAwesomeArray = [1, 2, 3, 4, 5]
const myAwesomeArray2 = [10, 20, 30, 40, 50]
myAwesomeArray.concat(myAwesomeArray2) // [1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ элСмСнты массива, индСкс элСмСнта, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся Π·Π°ΠΌΠ΅Π½Π° (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ), индСкс элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ заканчиваСтся Π·Π°ΠΌΠ΅Π½Π° (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Массив с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями.

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π΄Π°

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ замСняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ элСмСнты массива Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” «заполняСт» массив ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

const myAwesomeArray = [1, 2, 3, 4, 5]
// ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (0) - само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для заполнСния
// Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (1) - индСкс элСмСнта, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ
// Π’Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (3) - индСкс элСмСнта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ
myAwesomeArray.fill(0, 1, 3) // [1, 0, 0, 4, 5]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: Π³Π»ΡƒΠ±ΠΈΠ½Π° разворачивания (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π½ΠΎΠ²Ρ‹ΠΉ массив, состоящий ΠΈΠ· элСмСнтов Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Ρ… подмассивов

ΠœΡƒΡ‚Π°Ρ†ΠΈΡ исходного массива: Π½Π΅Ρ‚

Если Π² вашСм исходном массивС Π΅ΡΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ массивы, Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅Ρ‚Β» ΠΈΡ…, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ² Β«ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΒ».

const myAwesomeArray = [[1, 2], [3, 4], 5]
myAwesomeArray.flat() // [1, 2, 3, 4, 5]
const myAwesomeArray2 = [[[1, 2], [3, 4]], 5]
myAwesomeArray2.flat(2) // [1, 2, 3, 4, 5]

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: функция-коллбэк, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ this для коллбэка (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-коллбэка: Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт массива, Π΅Π³ΠΎ индСкс Π² исходном массивС, сам массив

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² flat() ΠΈ map(). ΠŸΡ€ΠΈ этом сначала ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ map β€” ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту примСняСтся функция-коллбэк, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ПослС этого ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ flat с Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ 1- ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

const myAwesomeArray = [[1], [2], [3], [4], [5]]
myAwesomeArray.flatMap(arr => arr * 10) // [10, 20, 30, 40, 50]
// Ρ‚ΠΎ ΠΆΠ΅ самоС с flat() + map()
myAwesomeArray.map(arr => arr * 10).flat() // [10, 20, 30, 40, 50]

Π Π°Π±ΠΎΡ‚Π° с массивами Π² JavaScript

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний элСмСнт Π² массивС Π² JavaScript

JavaScript

7 мСсяцСв Π½Π°Π·Π°Π΄

ΠΎΡ‚ Sharqa Hameed

Π’ JavaScript часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ слоТныС ΠΊΠΎΠ΄Ρ‹, основанныС Π½Π° массивах. Π­Ρ‚ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ массиву. НапримСр, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· массива ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов массива. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнта массива.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описана ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнта массива Π² JavaScript.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ/ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний элСмСнты массива Π² JavaScript?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ/ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний элСмСнты Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС Π² JavaScript, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  • Β« shift() Β» ΠΈ Β« pop() Β» ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
  • Β« slice() Β» ΠΌΠ΅Ρ‚ΠΎΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· упомянутых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ!

ΠœΠ΅Ρ‚ΠΎΠ΄ 1: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅/опусканиС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива Π² JavaScript с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² shift() ΠΈ pop()

Π’ JavaScript ΠΌΠ΅Ρ‚ΠΎΠ΄ Β« shift() Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β« pop() Β» опускаСт послСдний элСмСнт массива. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива.

Бинтаксис

array. shift(), array.pop()

Π—Π΄Π΅ΡΡŒ Β« array Β» относится ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ массиву, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ shift() ΠΈ pop() для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСдниС элСмСнты массива соотвСтствСнно.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для дСмонстрации.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ массив с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β« remArr Β» Ρ†Π΅Π»Ρ‹ΠΌ числом ΠΈ строковым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² Π½Π΅ΠΌ:

var remArr= [1, 2, ‘a’]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β« shift() Β» для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта Β« 1 Β» ΠΈΠ· массива ΠΈ отобраТСния Π΅Π³ΠΎ Π½Π° консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Β« console.log() Β»:

remArr.shift()

console.log(«ΠœΠ°ΡΡΠΈΠ² послС удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта:», remArr)

ПослС этого ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Β« pop() Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт Β« a Β» ΠΈΠ· массива ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

remArr. pop()

console.log(«Array after ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ послСднСго элСмСнта:», remArr)

НаконСц, распСчатайтС массив ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° консоли:

console.log(«ΠΠΎΠ²Ρ‹ΠΉ массив становится:», remArr)

Output

ΠœΠ΅Ρ‚ΠΎΠ΄ 2. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива Π² JavaScript с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice()

Π’ JavaScript ΠΌΠ΅Ρ‚ΠΎΠ΄ Β« slice() Β» Π½Π°Ρ€Π΅Π·Π°Π΅Ρ‚ элСмСнты массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ массив. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π½Π°Ρ€Π΅Π·ΠΊΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ ΠΈΡ… индСксам ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ² ΠΈΡ… ΠΈΠ· массива.

Бинтаксис

array.slice(start, end)

Π—Π΄Π΅ΡΡŒ Β« start Β» ΠΈ Β« end Β» относятся ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΈ послСднСму индСксу массива.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ поясняСт Π·Π°ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β« slice() Β» ΠΊ строкС Β« remArr Β» ΠΈ обратимся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ индСксам Β« 1 Β» ΠΈ Β« -1 Β», соотвСтствСнно. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ элСмСнтов с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ послСдним индСксами ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива: вывСсти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив Π½Π° консоль:

console.log(«ΠΠΎΠ²Ρ‹ΠΉ массив послС удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов становится:», firstLast)

Output

ΠœΡ‹ прСдоставили всС самыС простыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнта Π² массивС Π² JavaScript.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Β« shift() Β» ΠΈ Β« pop() Β» для удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива соотвСтствСнно ΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄ Β« slice() Β» для указания Π² Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ индСкса элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π»ΠΈΠ½Ρƒ исходного массива. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ объяснялись ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ удалСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго элСмСнтов массива Π² JavaScript.

Об Π°Π²Ρ‚ΠΎΡ€Π΅

Sharqa Hameed

Π― энтузиаст Linux, я люблю Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠ³ Linux Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π£ мСня Π΅ΡΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ магистра Π² области ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ, ΠΈ я ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠ΅ΠΌ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС сообщСния

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт ΠΈΠ· массива Π² TypeScript/JavaScript

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ JavaScript/TypeScript ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, массив β€” это Ρ‚ΠΎ, с Ρ‡Π΅ΠΌ Π²Π°ΠΌ приходится часто ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ. Π’ зависимости ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивами ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ. НСкоторыС распространСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ манипуляции с массивами Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ объСдинСниС Π΄Π²ΡƒΡ… массивов, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· массива ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π‘Ρ€Π΅Π΄ΠΈ этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ послСднСго элСмСнта ΠΈΠ· массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, описанныС Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊΠ°ΠΊ ΠΊ JavaScript, Ρ‚Π°ΠΊ ΠΈ ΠΊ TypeScript. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° JavaScript.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() для удалСния послСднСго элСмСнта ΠΈΠ· массива Π² JavaScript. ΠœΠ΅Ρ‚ΠΎΠ΄ массива pop() Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ удаляСт послСдний элСмСнт ΠΈΠ· массива, Π½ΠΎ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() для удалСния послСднСго элСмСнта ΠΈΠ· массива с практичСским ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ? Π§ΠΈΡ‚Π°ΠΉ дальшС! Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ послСднСго элСмСнта ΠΈΠ· массива Π² JavaScript с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

pop()

ΠœΠ΅Ρ‚ΠΎΠ΄ pop() прСдставляСт собой простой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ послСднСго элСмСнта ΠΈΠ· массива. Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ послСдний элСмСнт ΠΈΠ· массива ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ этот элСмСнт. Помимо знания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop() , Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ сСбя Π²Π΅Π΄Π΅Ρ‚.

Наряду с нСсколькими Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ массива, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ push() , unshift() , shift() ΠΈ Ρ‚. Π΄.; ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() дСмонстрируСт ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ массив мСняСт своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ послС примСнСния ΠΊ Π½Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с массивом. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, массив обновляСтся послС удалСния послСднСго элСмСнта.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с измСняСмым свойством ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop() Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

 пСрСмСнная ΠΎΠ±Ρ€ = [1,2,3]
console.log(arr.pop()) // 3
console.log(arr) // [1, 2] 

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив arr содСрТит Ρ‚Ρ€ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: 1 , 2 ΠΈ 3 . ПослС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ pop() , ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ записываСтС массив Π² консоль, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠΈ 2 . Π—Π΄Π΅ΡΡŒ пСрСмСнная arr измСнилась. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() являСтся измСняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.

Π”ΠΎ сих ΠΏΠΎΡ€ Π²Ρ‹ Π·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() являСтся измСняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Однако ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько нСдостатков. ΠŸΡ€ΠΈ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния затрудняСт отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π°Π·Ρ‹ для сравнСния. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ это затрудняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. ΠœΡƒΡ‚Π°Ρ†ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСизмСняСмыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ нСизмСняСмыми опСрациями.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (нСизмСняСмыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ)

Учитывая нСдостатки ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop() ΠΈΠ·-Π·Π° Π΅Π³ΠΎ измСняСмого свойства, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ для достиТСния Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ массив ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ послСднСго элСмСнта массива.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт ΠΈΠ· массива Π² JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

slice()

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ slice() для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов массива ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ индСкса Π΄ΠΎ прСдпослСднСго индСкса ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ послСдний элСмСнт массива. Π­Ρ‚ΠΎ нСизмСняСмая опСрация ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ pop() .

ΠœΠ΅Ρ‚ΠΎΠ΄ slice() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, содСрТащий элСмСнты ΠΎΡ‚ start Π΄ΠΎ индСкса Π½Π° ΠΎΠ΄ΠΈΠ½ мСньшС end ( end Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½). ΠžΠΏΡ†ΠΈΠΈ start ΠΈ end ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт ΠΈΠ· массива, start Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 0 , Π° end Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ послСдним индСксом массива. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ послСдний элСмСнт ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива.

НапримСр, рассмотрим ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив ΠΈ Π½Π°ΠΉΠ΄Π΅ΠΌ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство length . Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ индСкс послСднСго элСмСнта массива, вычитая 1 ΠΈΠ· Π΄Π»ΠΈΠ½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСкс массива начинаСтся с 0 . НаконСц, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ start ΠΊΠ°ΠΊ 0 ΠΈ end ΠΊΠ°ΠΊ индСкс послСднСго элСмСнта ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice() .

 Π²Π°Ρ€ ΠΎΠ±Ρ€ = ['Π₯ΠΎΠ½Π΄Π°', 'ямаха', 'ΠΊΡ‚ΠΌ', 'Π±ΠΌΠ²']
var len = arr.length // 4
console.log(arr.slice(0, len-1)) // ["honda", "yamaha", "ktm"] 

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция arr.slice(0, len-1) пСрСводится Π² arr.slice(0, 3) . Как ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄ slice() Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ индСкс, поэтому ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты массива ΠΈΠ· индСксов 0 Π΄ΠΎ 2 . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, послСдний элСмСнт удаляСтся ΠΈΠ· массива.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice() ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop() . ΠœΠ΅Ρ‚ΠΎΠ΄ slice() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ pop() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт.

ВмСсто вычислСния Π΄Π»ΠΈΠ½Ρ‹ массива для доступа ΠΊ послСднСму индСксу ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокращСнный ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½Ρ†Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1 Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° end для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice() ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ послСдний индСкс массива. Если Π±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ -2 , ΠΎΠ½ΠΎ прСдставляло Π±Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠΉ индСкс массива. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, эквивалСнтный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅.

 console.log(arr.slice(0, -1)) // ["honda", "yamaha", "ktm"] 

Π’ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ нСизмСняСмоС свойство ΠΌΠ΅Ρ‚ΠΎΠ΄Π° slice() . Когда Π²Ρ‹ рСгистрируСтС массив Π² консоли, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² значСниях Π΄Π°ΠΆΠ΅ послС slice() опСрация.

 console.log(arr) // ['honda', 'yamaha', 'ktm', 'bmw'] 

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ послСдний элСмСнт ΠΈΠ· массива Π² JavaScript с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

filter()

Другая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ послСднСго элСмСнта ΠΈΠ· массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ filter() для массива. ΠœΠ΅Ρ‚ΠΎΠ΄ filter() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания условия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ провСряСт, мСньшС Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ индСкс массива, Ρ‡Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычитания 1 ΠΈΠ· Π΄Π»ΠΈΠ½Ρ‹ массива. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ послСдний элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΡ‰Π΅Π½ Π²ΠΎ вновь Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌ массивС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ filter() Ρ‚Π°ΠΊΠΆΠ΅ являСтся нСизмСняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ.

 Π²Π°Ρ€ ΠΎΠ±Ρ€ = ['Π₯ΠΎΠ½Π΄Π°', 'ямаха', 'ΠΊΡ‚ΠΌ', 'Π±ΠΌΠ²']
var newArr = arr.filter((элСмСнт, индСкс) => index < arr.length - 1 )
console.log(newArr) // ["honda", "yamaha", "ktm"] 

Π—Π΄Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ filter() Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. УсловиС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послСдний элСмСнт Π½Π΅ смоТСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ сСбя ΠΈΠ· массива. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ условиС ΠΊ послСднСму элСмСнту массива ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π»ΠΈΠ½Π° массива Ρ€Π°Π²Π½Π° 4 , индСкс послСднСго элСмСнта Ρ€Π°Π²Π΅Π½ 3 . УсловиС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° filter() провСряСт, мСньшС Π»ΠΈ индСкс 3 , Ρ‡Π΅ΠΌ arr.length - 1 , Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 3 . УсловиС Π½Π΅ выполняСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 3 (индСкс послСднСго элСмСнта) Π½Π΅ мСньшС 3 ( arr.length-1 ). ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты массива проходят условиС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… индСксы мСньшС 3 . Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, послСдний элСмСнт Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ массив, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ.

Когда Π²Ρ‹ записываСтС массив Π² консоль, исходныС элСмСнты массива ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ, дСмонстрируя Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ свойство ΠΌΠ΅Ρ‚ΠΎΠ΄Π° filter() .

 console.log(arr) //[ 'honda', 'yamaha', 'ktm', 'bmw' ]
 

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ прСдставлСна ​​пара способов удалСния послСднСго элСмСнта ΠΈΠ· массива.