JS метод String.at()
Занальний опис
Метод String.prototype.at()
дозволяє отримувати символ за вказаним індексом, причому з особливістю: від'ємні значення індексу дозволяють читати рядок з кінця. Це робить at()
зручним для використання, коли потрібно легко і швидко отримати доступ до елементів рядка, не замислюючись про обчислення зворотного індексування.
Для використання методу достатньо викликати його на існуючому рядковому об'єкті, передавши індекс як аргумент. Якщо індекс позитивний, at()
повертає символ, що знаходиться на цій позиції, як якщо б ми рахували б з початку рядка. У випадку від'ємного індексу, символ береться як з кінця рядка. Якщо ж індекс виходить за межі довжини рядка, метод поверне undefined
.
Ось базовий приклад використання:
let str = "Привіт!";
console.log(str.at(0)); // "П"
console.log(str.at(-1)); // "!"
У цьому прикладі перший виклик повертає перший символ "П"
, а другий виклик – останній символ "!"
.
Метод at()
особливо корисний у ситуаціях, коли потрібно працювати з рядками у функціях колбек, наприклад, при роботі з методами вищого порядку або при роботі з асинхронним кодом, де може знадобитися витягувати окремі символи з рядків, отриманих з різних джерел.
Окрім того, at()
дуже зручний у випадках, коли робота ведеться з Unicode символами, що можуть бути представлені за допомогою сурогатних пар, оскільки метод коректно обробляє такі випадки, повертаючи відповідний символ.
Приклад з Unicode символами:
let emoji = "😄🐶🚀";
console.log(emoji.at(1)); // 🐶
console.log(emoji.at(-1)); // 🚀
Зверніть увагу, що хоча емодзі виглядають як єдині символи, вони можуть бути складені з кількох Unicode кодових точок, і метод at()
впорається з цим без проблем.
Важливою особливістю String.prototype.at()
є його здатність обробляти великі рядки ефективно, оскільки він не вимагає проходження по всьому рядку, щоб знайти символ на кінці, як це було б при використанні методу charAt()
з обчисленням позиції символу.
Нотатка: | Метод |
Нотатка: | Коли ви використовуєте
|
Нотатка: | Варто враховувати, що |
Синтаксис
at(index)
Параметри
- *
index
Індекс (позиція) символу рядка, який має бути повернений.
Return
string
Повертає рядок, що складається з одного UTF-16 кодового блоку, який розташований на зазначеній позиції. Якщо зазначений індекс виходить за межі довжини рядка, результатом буде
undefined
.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
92 |
90 |
15.4 |
78 |
92 |
Переглядач | ||||
---|---|---|---|---|
92 |
92 |
90 |
15.4 |
Переглядач | ||
---|---|---|
16.6.0 |
1.12 |
Приклади
У цьому прикладі користувачі можуть ввести будь-який рядок та індекс, а потім натиснути кнопку, щоб побачити результат. Якщо вони введуть від'ємний індекс, метод at()
поверне символ, який знаходиться на тій позиції від кінця рядка.
У цьому прикладі демонструється базове використання методу String.prototype.at()
, який дозволяє отримати символ з рядка за певним індексом. На відміну від методу charAt()
, at()
також може приймати від'ємні індекси, що представляють позиції символів, починаючи з кінця рядка.
let greeting = "Привіт!";
let firstChar = greeting.at(0); // Отримуємо перший символ
let lastChar = greeting.at(-1); // Отримуємо останній символ
console.log(firstChar); // Виводить "П"
console.log(lastChar); // Виводить "!"
У цьому прикладі ми складніше використовуємо String.prototype.at()
для створення функції, яка реверсує рядок. Ми будемо проходитись по рядку з кінця до початку, використовуючи від'ємні індекси, і збирати новий рядок у зворотному порядку.
function reverseString(str) {
let reversed = '';
for (let i = 1; i <= str.length; i++) {
reversed += str.at(-i); // Додаємо символ з кінця рядка до результату
}
return reversed;
}
let greeting = "Привіт";
let reversedGreeting = reverseString(greeting);
console.log(reversedGreeting); // Виводить "тівирП"