Как вести подсчет разных вещей в массиве?

Если у вас есть дубликаты фамилий, вы можете отсортировать их по имени -

obj.sort(function(a,b){
  if(a.last_nom< b.last_nom) return -1;
  if(a.last_nom >b.last_nom) return 1;
  if(a.first_nom< b.first_nom) return -1;
  if(a.first_nom >b.first_nom) return 1;
  return 0;
});
4
задан Niko 16 January 2019 в 06:00
поделиться

2 ответа

Согласно приведенному выше коду, вы пытаетесь подсчитать количество каждого алфавита.
Итак, для каждой буквы предположим, что вы используете одну корзину. Что сделано в new int [ALPHABET];. Итак, у вас есть 26 слотов от 0 до 25.
Теперь, когда вы подсчитываете буквы:
Каждой букве присваивается значение (значение ASCII). Значение ASCII в нижнем регистре a a равно 97. Но в вашем слоте вы хотите добавить a в слот 0. Итак, что вы делаете: вы вычитаете 97, т.е. вы вычитаете значение a для каждой буквы .
Итак, теперь a сохраняется в слоте 0, b в слоте 1 и т. Д.

0
ответ дан Anuj Gautam 16 January 2019 в 06:00
поделиться
System.out.println(0 + 'c'); //ASCII value of 'c'; will print 99
System.out.println(0 + 'a'); //ASCII value of 'a'; will print 97
System.out.println('c' - 'a'); //Difference of ASCII values of characters; will print 99-97=2

В вашем случае

inventory[ch - 'a']++;

ch будет неким персонажем.
ch - 'a' будет расстоянием этого символа от «а». Например, как показано выше, 'c' - 'a' = 2.
inventory[ch - 'a'] будет указывать на номер по индексу ch - 'a' в массиве.
inventory[ch - 'a']++ увеличит это значение на 1.

0
ответ дан Kartik 16 January 2019 в 06:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: