freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-algorithm-scripting/where-do-i-belong/index.md

11 KiB

title localeTitle
Where Do I Belong إلى أين أنتمي

:triangular_flag_on_post: تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج :busts_in_silhouette: واكتب الكود الخاص بك :pencil:

:checkered_flag: شرح المشكلة:

هذا يمكن أن يكون مشكلة صعبة لفهم. تحتاج إلى العثور على مكان في الصفيف يجب إدراج رقم بواسطة الأمر ، وإرجاع الفهرس حيث يجب أن تذهب.

روابط ذات صلة

:speech_balloon: تلميح: 1

أول شيء يجب فعله هو ترتيب الصفيف من الأسفل إلى الأعلى ، فقط لجعل الرمز أسهل. هذا هو المكان الذي يأتي فيه النوع ، فهو يحتاج إلى وظيفة رد اتصال حتى تضطر إلى إنشائه.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 2

بمجرد فرز الصفيف ، قم فقط بالتحقق من الرقم الأول الأكبر وإرجاع الفهرس.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 3

إذا لم يكن هناك مؤشر لهذا الرقم ، فسيتعين عليك التعامل مع هذه الحالة أيضًا.

حاول أن تحل المشكلة الآن

تنبيه المفسد!

علامة تحذير

الحل في المستقبل!

:beginner: الحل الأساسي للكود:

`function getIndexToIns(arr, num) { arr.sort(function(a, b) { return a - b; });

for (var a = 0; a < arr.length; a++) { if (arr[a] >= num) return a; }

return arr.length; } `

:rocket: تشغيل الكود

شرح الشفرة:

  • أولاً ، أقوم بتصنيف الصفيف باستخدام. .sort(callbackFuntion) حسب الأقل إلى الأعلى ، من اليسار إلى اليمين.
  • ثم أستخدم حلقة for لمقارنة العناصر الموجودة في الصفيف بدءًا من أصغرها. عندما يكون عنصر في الصفيف أكبر من الرقم الذي نقارنه ، فإننا نعيد الفهرس كعدد صحيح.

روابط ذات صلة

:beginner: الحل الأساسي للكود:

`function getIndexToIns(arr, num) { // Find my place in this sorted array. var times = arr.length; // runs the for loop once for each thing in the array var count = 0; for (var i=0;i<times;i++){ if(num>arr[i]){count++;} } // counts how many array numbers are smaller than num return count; // the above equals num's position in a sorted array }

getIndexToIns([40, 60], 50); `

:rocket: تشغيل الكود

شرح الشفرة:

  • أنا لا فرز مصفوفة إدخال arr
  • أقوم بحساب عد للفرز كلما كان إدخال num أكبر من رقم إدخال arr.
  • هذا الرقم يساوي ما هو موضع num في مصفوفة مرتبة.

:beginner: الحل الأساسي للكود:

بواسطة HarinaPana

`function getIndexToIns(arr, num) {

arr.sort(function(a, b) { return a - b; });

var i = 0; while (num > arr[i]) { i++; }

return i; }

getIndexToIns([40, 60], 50); `

:rocket: تشغيل الكود

شرح الشفرة:

  • فرز مجموعة موجودة.
  • تكرار خلال مجموعة أثناء التحقق إذا الأسطوانات هي الأكبر.
  • ستتوقف الحلقة عندما لا تكون num أكبر من i وإرجاع العنصر الأخير محددًا.

:sunflower: حل الشفرة المتوسطة:

بواسطة faustodc

function getIndexToIns(arr, num) { arr.push(num); arr.sort(function(a, b){return ab}); return arr.indexOf(num); }

:rocket: تشغيل الكود

شرح الشفرة:

  • أولاً ، نضيف عدد num إلى الصفيف باستخدام push() الذي يضيفه كعنصر آخر في الصفيف.
  • ثم نستخدم sort() مع وظيفة function(a, b){return ab} رد الاتصال function(a, b){return ab} لفرز الأرقام بترتيب تصاعدي.
  • وأخيرًا ، نعيد عنوان أو فهرس num في الصفيف باستخدام الدالة indexOf() .

روابط ذات صلة

:sunflower: حل الشفرة المتوسطة:

باستخدام .findIndex()

`function getIndexToIns(arr, num) { // sort and find right index var index = arr.sort((curr, next) => curr > next) .findIndex((currNum)=> num <= currNum); // Returns proper answer return index === -1 ? arr.length : index; }

getIndexToIns([40, 60], 500); `

:rocket: تشغيل الكود

شرح الشفرة:

  • أولاً ، قم بفرز الصفيف بترتيب تصاعدي ، ويتم ذلك حاليًا باستخدام وظائف الصفيف للحد الأدنى من المساحة.
  • بمجرد فرز المصفوفة ، نقوم مباشرة بتطبيق .findIndex() حيث سنقوم بمقارنة كل عنصر في المصفوفة حتى نجد num <= currNum حيث أن الرقم الذي نريد إدراجه هو أقل أو يساوي الرقم الحالي رقم في التكرار.
  • ثم نستخدم العمليات الثلاثية للتحقق مما إذا حصلنا على فهرس تم إرجاعه أو -1 . نحصل فقط على -1 عندما لم يتم العثور على المعنى يعني عندما نحصل على خطأ بالنسبة لجميع العناصر في الصفيف ، وفي هذه الحالة ، يعني ذلك أنه يجب إدراج num في نهاية القائمة ومن ثمَّ ، لماذا نستخدم arr.length .

روابط ذات صلة

:rotating_light: الحل المتقدم للكود:

بواسطة nivrith

`function getIndexToIns(arr, num) {

return arr.concat(num).sort((a,b) => ab).indexOf(num);

}

getIndexToIns([1,3,4],2); `

:rocket: تشغيل الكود

شرح الشفرة:

  • نستخدم تسلسل الأسلوب لاستدعاء طريقة واحدة تلو الأخرى لحل المشكلة في سطر واحد. أولاً نقوم بدمج arr و num باستدعاء طريقة arr.concat (num)
  • ثم نستخدم sort() مع وظيفة سهم الاستعادة (a, b) => return ab لفرز الأرقام بترتيب تصاعدي
  • وأخيرًا ، نعيد عنوان أو فهرس num في الصفيف باستخدام طريقة indexOf()

روابط ذات صلة

:clipboard: ملاحظات للمساهمات:

  • :warning: لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
  • أضف شرحًا لحلك.
  • تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم . :traffic_light:
  • الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( :warning: لا تزيل أي أسماء مستخدمين حالية )

نرى :point_right: Wiki Challenge Solution Template كمرجع.