في سلسلة ، مثل "ZhaoChucichuzuiduodezifu" ، نريد أن نكتشف الشخصيات التي تظهر أكثر من غيرها. ستشرح هذه المقالة الأساليب والأفكار بالتفصيل.
قدم أولاً طريقتين في كائنين سلسلة : indexof () و charat () طرقان
تقدم طريقة indexof () إرجاع الحدوث الأول لقيمة سلسلة محددة في السلسلة
تقدم طريقة Charat () حرف الإرجاع في موضع محدد
أولاً ، قم بإجراء اختبار صغير للعثور على أين يظهر كل "I" في السلسلة "Woainixiaoli".
<script> var arr = 'woainixiaoli' ؛ var index = -1 ؛ // تحديد الفهرس المتغير للتحكم في قيمة الفهرس // عندما لا يمكن العثور على a ، أي أن قيمة الفهرس () هي -1 ، تنتهي الحلقة {index = arr.indexof ("i" ، index + 1) ؛ // استخدم فهرس المعلمة الثاني+1 للتحكم في كل عملية بحث عن موضع الفهرس التالي للشخصية A عند العثور على آخر بحث إذا (index! = -1) {// iconsole.log (index) ؛ // موضع الإخراج A}} بينما (الفهرس! = -1) ؛ </script>بعد تشغيل الرمز أعلاه ، يتم إخراج وحدة التحكم
انتقل إلى الموضوع وابحث عن معظم الأحرف في السلسلة "ZhaoChucichuzuiduodezifu"
الطريقة 1: استخدم صفيفًا (هناك عيب. عندما يكون هناك أكثر من حرف يظهر ، يمكن العثور على شخص واحد فقط)
<script> var str = "zhaochucichuzuiduodezifu" ؛ var arr = [] {j ++ ؛}} بينما (index! = -1) ؛ arr [j] = str [i] ؛ . بعد حلقات متعددة ، ستحدث مهام متكررة. // سوف تكتب المهمة اللاحقة المهمة السابقة ، ولكنها لن تؤثر على اكتشافنا مع معظم الأحرف} console.log (arr) ؛ console.log ("أكثر الأحرف هي" + arr [arr.length - 1])نتيجة الكود أعلاه الذي يتم تشغيله ثم إخراج وحدة التحكم هو كما يلي:
يمكن أيضًا رؤيته من Array Array Arr أن هذه الطريقة ستكتب أحرفًا مع نفس عدد المرات ويمكنها عرض واحدة فقط. إذا ظهرت حرفين بنفس عدد المرات ، فيمكن أن تحصل هذه الطريقة فقط على إحدى المرات. بناءً على ذلك ، راجع الطريقة التالية لحلها باستخدام الكائنات.
الطريقة 2: استخدام الكائنات (الموصى بها)
<script> var str = "ZhaoChucichuzuiduodezifu" ؛ var o = {} ؛ for (var i = 0 ، length = str.length ؛ i <length ؛ i ++) {// var char = str [i] o [char] ++ ؛ // إضافة 1} آخر {o [char] = 1 ؛ // إذا كان الحدوث الأول ، يتم تمييز عدد الحوادث كـ 1}} console.log (O) ؛ . // Maxchar مع أكبر عدد من الأحداث Maxchar = المفتاح ؛ // الحرف المقابل هو المفتاح الحالي}} 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} آخر {o [char] = 1 ؛ // إذا تم تسجيل الحدوث الأول ، يتم تسجيل عدد المرات كـ 1}} console.log (O) ؛ . .النتائج كما يلي:
ما سبق هو الحرف الذي يقدمه لك المحرر أن الأحرف الأكثر شيوعًا تظهر في سلسلة JS. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!