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