Как можно увеличить значение символа в JS

116
08 сентября 2019, 22:50

Можно ли как, допустим, в C++ применить какие-то операции с символом, чтобы он шёл дальше по алфавиту?

Например:

char sym = 'a';
sym++; // sym = 'b'
sym++; // sym = 'c'
Answer 1

function nextSymbol(a) { 
  return String.fromCharCode(a.charCodeAt(0) + 1); 
} 
 
console.log(nextSymbol('a')); 
console.log(nextSymbol('г')); 
console.log(nextSymbol('Ц')); 
 
var a = 'а'; 
for (var i = 1; i <= 33; i++) { 
  console.log(i, a); 
  a = nextSymbol(a); 
} 
console.log(i, a);

Answer 2

Варианты с charCode будут работать, только если ожидаются символы, вмещающиеся в два байта. Для поддержки всего Юникода (включая эмодзи и т.д.), нужно немного изменить. Разницу можно увидеть, если запустить этот код в консоли браузера или любом другом инструменте, отображающем эмодзи. Правильный код должен позволить перейти от эмодзи коня к эмодзи барашка.

'use strict';
function nextSymbolLegacy(a) { return String.fromCharCode(a.charCodeAt(0) + 1); }
function nextSymbolNew(a) { return String.fromCodePoint(a.codePointAt(0) + 1); }
const horse = '\u{1F40E}';
const ram  = '\u{1F40F}';
console.log(horse);
console.log(ram);
console.log(nextSymbolLegacy(horse));
console.log(nextSymbolNew(horse));

Функция с charCode будет выводить символ со знаком вопроса, обозначающий осиротевший символ из суррогатной пары.

READ ALSO
Redux вывод нескольких state вызывает undefined

Redux вывод нескольких state вызывает undefined

есть хранилище и один reducer При вызове 2 action SHOW_POSTS и SHOW_TODOS, post выводятся в консоль а todos выводит undefined, я понимаю что state переопределяет объект,...

126
Angular 6 и Yandex Map API

Angular 6 и Yandex Map API

хочу в темплейте у балуна карты вызвать (click)="open()" но метод open не вызываетсяВ чем причина?

126
Скрипт генерация случайных фраз

Скрипт генерация случайных фраз

Генерация случайных слов, с задержкой по времени, где фраза "НА САЙТЕ ТОЛЬКО" видна изначально, а после счетчика рондомно показывается одна...

127
Загрузка в расширении хром

Загрузка в расширении хром

Как в расширении хром скачивать файлы, и если возможно самому формировать файл который скачает пользователь?

127