В строке, такой как «Zhaochucuzuzuiduodezifu», мы хотим узнать символы, которые появляются больше всего. Эта статья подробно объясняет методы и идеи.
Сначала ввести два метода в двух струнных объектах : Indexof () и Charat () Методы
Метод indexof () вводит возврат первого появления указанного строкового значения в строке
Метод charat () вводит возвратный символ в указанной позиции
Сначала сделайте небольшой тест, чтобы найти, где каждый «I» появляется в строке 'woainixiaoli'.
<script> var arr = 'woainixiaoli'; var index = -1; // Определите индекс переменной для управления значением индекса // Когда A не может быть найдено, то есть значение indexof () равно -1, цикл заканчивается do {index = arr.indexof ("i", index + 1); // Использование второго индекса параметра+1 для управления каждому поиску начинается с следующей позиции индекса символа a Когда последний поиск будет найден, если (index! = -1) {// символ иконсоль. // положение вывода a}} while (index! = -1); </script>После запуска вышеупомянутого кода выходы консоли
Перейдите к теме и найдите наибольшее количество символов в строке 'Zhaochucuzuzuiduodezifu'
Метод 1: Используйте массив (есть недостаток. Когда появляется более одного символа, можно найти только одного).
<script> var str = "zhaochucicuzuiduodezifu"; var arr = []; // определить новый массив // цикл через строку для (var i = 0, length = str.length; i <length; i ++) {var index = -1; var j = 0; // Найти каждый символ do {index = str.Index (i], INDEX+1); {j ++;}} while (index! = -1); arr [j] = str [i]; // Присвоение символов в строке STR для данных с помощью ARR, индексированного ARR, как j. После нескольких петель будут повторяться назначения. // Последующее назначение будет перезаписать предыдущее назначение, но оно не повлияет на наш находчик с самым большим символом} console.log (arr); console.log («Большинство символов« + arr.length - 1]); console.log («количество раз» - + (arr.length - 1);Результат запуска вышеупомянутого кода, а затем вывод консоли заключается в следующем:
Из ARR также можно увидеть, что этот метод будет перезаписать символы с таким же количеством раз и может отображать только один. Если 2 символа появляются с таким же максимальным количеством раз, этот метод может получить только один. Основываясь на этом, см. Следующий метод, чтобы решить его с помощью объектов.
Метод 2: Используйте объекты (рекомендуется)
<script>var str = "zhaochucichuzuiduodezifu";var o = {};for (var i = 0, length = str.length; i < length; i++) {// var char = str[i];var char = str.charAt(i);if (o[char]) { //char is an attribute of object o, o[char] is the attribute value, o[char] controls the number of происшествия o [char] ++; // добавить 1} else {o [char] = 1; // Если первое вхождение, количество случаев помечено как 1}} console.log (o); // Вывод является полным объектом, регистрирующим каждый символ и его число вхождения // Перемещение через объект, обнаруживая символы с наибольшим количеством вхождений и количество случаев вхождения var max = 0; var maxchar = null; for (var in o) {if (max <o [key]) {max = o [key]; // макс -чар с наибольшим количеством случаев MAXCHAR = KEY; // Соответствующий символ является текущей ключом}} console.log («Наиболее входы -« + maxchar); console.log (»количество случаев:« + max); </script>Результат запуска вышеупомянутого кода, а затем вывод консоли заключается в следующем:
Этот метод решает проблему метода первого, и мы можем четко записать количество случаев каждого символа. Когда есть два символа с одинаковым количеством раз, их можно ясно видеть в объекте.
Тем не менее, все еще есть недостатки. Вы не можете напрямую выводить символы с самым большим количеством раз одновременно. Это требует дополнительных условий суждения. Идеальный код заключается в следующем o (∩_∩) o
<Script> var str = "niniNihaoa"; var o = {}; for (var i = 0, length = str.length; i <length; i ++) {var char = str.charat (i); if (o [char]) {o [char] ++; // добавить 1} else {o [char] = 1; // Если первое вхождение записывается, количество раз записывается как 1}} console.log (o); // Вывод является полным объектом, регистрирующим каждый символ и его число вхождения // перемещение через объект и поиск символа с наибольшим количеством случаев var max = 0; for (var in o) {if (max <o [key]) {max = o [key]; // тот, с самым большим количеством максимального хранимых, всегда хранящихРезультаты следующие:
Вышеуказанный символ, который редактор представляет вам, что наиболее распространенные символы появляются в строке JS. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!