📝 ترتيب النصوص والقوائم
فرز، خلط، عكس وتنظيم قوائمك فوراً وبسهولة
ما يفعله كل زر بالفعل (الدليل الشامل للترتيب)
باختصار شديد: ستة أزرار تقوم بإعادة ترتيب الأسطر، وثلاثة أزرار تقوم بإعادة كتابتها وتعديلها، ويتم تجاهل كل سطر فارغ تماماً قبل أن تبدأ أي عملية مقارنة.
banana
Apple
cherry
appleapple
Apple
banana
cherry| الزر | ما يفعله هذا الزر بأسطرك النصية |
|---|---|
| A-Z و Z-A | يقارن الأسطر كنصوص بحتة، بترتيب تصاعدي أو تنازلي، تماماً وبالضبط كما يرتب القاموس الكلمات. |
| 1-9 | يقرأ أي سلسلة من الأرقام كعدد واحد متكامل، بحيث يظهر Item 2 منطقياً قبل Item 10. |
| الطول | يضع السطر الأقصر أولاً. وفي حال وجود سطرين بنفس الطول، يتم ترتيبهما أبجدياً كحل بديل. |
| خلط | يطبق خوارزمية Fisher-Yates للخلط، مدعومة بمولد الأرقام العشوائية الآمن الخاص بمتصفحك. |
| عكس | يقلب الترتيب الحالي رأساً على عقب. هذا الزر لا يقوم بفرز أو ترتيب أي شيء على الإطلاق. |
| + بادئة و لاحقة + | يربط سلسلة نصية تكتبها أنت في بداية أو في نهاية كل سطر من أسطر قائمتك. |
| 123 | يضيف ترقيماً متسلسلاً 1.، 2.، 3.، أو يزيله إذا كان السطر الأول يبدو مرقماً بالفعل. |
قبل تشغيل أي من هذه العمليات المذكورة، تقوم الأداة بتقسيم النص الذي قمت بلصقه عند كل فاصل أسطر، وتتخلص من كل سطر فارغ أو يتكون فقط من مسافات بيضاء، لأن السطر الفارغ لا يحتوي ببساطة على أي محتوى يمكن مقارنته. ما ينجو من هذا الفلتر الصارم هو القائمة الفعلية التي يعمل عليها كل زر من الأزرار.
التقسيم بين نصفي هذا الجدول يهم أكثر بكثير مما يبدو عليه للوهلة الأولى. أزرار البادئة واللاحقة و 123 تعيد كتابة وتعديل نص كل سطر وتترك الترتيب سليماً كما هو. الأزرار الستة الأخرى تغير الترتيب وتترك النص الأصلي سليماً كما هو. وهذا هو السبب أيضاً في أن مربع الاختيار إزالة التكرارات يؤثر فقط على الأزرار الستة الأولى: تعمل عملية إزالة التكرارات كخطوة أخيرة ونهائية لعملية الفرز أو الخلط، لذلك لا يوجد شيء يمكن ربطها به عندما تكتفي فقط بإضافة رمز نقطي في بداية كل سطر.
القوائم الكبيرة تبقى سلسة وسريعة الاستجابة. بعد تجاوز حاجز 5000 سطر، تنتقل عمليات الفرز والترتيب المعقدة إلى عامل ويب في الخلفية بدلاً من التشغيل على المسار الرئيسي للصفحة، لذلك تستمر علامة التبويب في الاستجابة والتفاعل بينما يتم فرز قائمة ضخمة جداً بدلاً من التجمد والتعليق حتى تنتهي العملية.
لماذا يأتي "Item 10" قبل "Item 2"
هذا ليس خطأ برمجياً على الإطلاق. فرز A-Z يقارن حرفاً بحرف، والحرف 1 يعتبر أقل وأصغر من الحرف 2. انقر على 1-9 بدلاً من ذلك وسيتم فرز الأرقام كأرقام حقيقية.
Item 1
Item 10
Item 2
Item 9Item 1
Item 2
Item 9
Item 10قم بلصق Item 1، Item 2، Item 10، Item 9 وجرب كلا الزرين بنفسك. يمر فرز A-Z عبر السطرين من اليسار إلى اليمين ويتوقف فوراً عند أول حرف يختلف بينهما. يحدث ذلك في الموضع الخامس، حيث يزن ويقارن الحرف 1 مقابل الحرف 2، وليس لديه أدنى فكرة أن الـ 1 هو مجرد بداية لعدد أكبر بكثير. لذلك، كل شيء يبدأ بـ "Item 1" سيتم فرزه قبل "Item 2"، بما في ذلك "Item 19" و "Item 100" إذا كانت قائمتك تحتوي عليهما. هذا يسمى الترتيب المعجمي، أو ترتيب القاموس، وهو ما تفعله عملية مقارنة السلاسل النصية في كل لغات البرمجة ما لم تطلب أنت تحديداً شيئاً آخر.
الزر 1-9 يطلب شيئاً آخر تحديداً. إنه يستخدم مقارنة مدركة للأرقام ترصد سلسلة متصلة من الأرقام داخل السطر وتتعامل معها كقيمة رياضية واحدة، لذلك تقرأ "10" كعشرة بدلاً من 1 متبوعاً بـ 0. يسمى هذا عادةً بالفرز الطبيعي، لأنه يطابق تماماً الطريقة التي يقرأ بها الإنسان العادي رقماً مضمناً في نص بدلاً من الطريقة التي يقرأ بها الكمبيوتر الحروف الخام.
هذا الاختلاف والفارق يلدغ بقوة في أي شيء يحتوي على ترقيم مدمج في النص: قوائم الفصول، أرقام الفواتير، الصور المأخوذة مباشرة من الكاميرا أو الماسح الضوئي، المسودات ذات الإصدارات مثل "مسودة v9" و "مسودة v10"، أو رموز تتبع المنتجات. هذه هي بالضبط القوائم التي يبدو فيها الفرز الخاطئ صحيحاً للوهلة الأولى ولا ينهار إلا عندما يتصفح شخص ما الصفحة بالترتيب الصحيح والدقيق.
متى لا يهم ذلك: إذا كانت قائمتك أبجدية بحتة ولا تحتوي على أي أرقام على الإطلاق، فإن A-Z و 1-9 يعيدان نتائج متطابقة تماماً، لأنه لا توجد سلاسل أرقام لكي تتعامل معها المقارنة الرقمية بشكل مختلف. لا يختلف الزران عن بعضهما البعض إلا عندما تظهر الأرقام فجأة داخل الأسطر النصية.
الحروف ذات العلامات التشكيلية يتم فرزها حيث تتوقعها
العلامة التشكيلية لا تنفي الكلمة إلى أسفل القائمة. يتم فرز café بجوار cafe و cage، وهو المكان الذي تنتمي إليه الحرف الأساسي للكلمة.
café
cage
Müller
ZebraMüller
Zebra
café
cageيثير فرز النصوص التي تحتوي على حروف ذات علامات تشكيلية سؤالاً مهماً لا يضطر معيار ASCII العادي للإجابة عليه أبداً: أين ينتمي é بالنسبة إلى e? أزرار A-Z و Z-A تجيب على هذا السؤال باستخدام مقارنة السلاسل النصية المدركة للإعدادات المحلية الخاصة بمتصفحك بدلاً من مقارنة رموز الحروف الخام، والعمودان الموضحان أعلاه يوضحان لماذا يمثل هذا الاختيار أهمية كبيرة.
إذا تمت المقارنة بواسطة نقطة الكود الخام، بالطريقة التي يعمل بها الفرز الموجه بالبايت أو أوامر الشاشة السريعة، فإن كل حرف عليه علامة تشكيلية سيهبط بعد كل حرف بدون علامة، لأن الحروف ذات العلامات التشكيلية تقع ببساطة في مكان أعلى في جدول Unicode العالمي. هكذا ينتهي المطاف بكلمة Zebra متقدمة على كلمة café: نقطة الكود لحرف Z الكبير أقل من نقطة الكود لحرف é. لا يوجد إنسان طبيعي يقوم بترتيب قائمة أبجدياً بهذه الطريقة الغريبة.
تعامل المقارنة المدركة للإعدادات المحلية الحرف الذي عليه علامة تشكيلية كمتغير طبيعي للحرف الأساسي لغرض الترتيب والفرز، وهذا هو السلوك الذي يريده الجميع تقريباً من أداة فرز للأغراض العامة. إنه يطابق تماماً كيفية عمل القوائم المرتبة أبجدياً في اللغات الفرنسية والإسبانية والألمانية والبرتغالية وبقية اللغات التي تعتمد على الحروف اللاتينية ذات العلامات. القائمة المختلطة التي تحتوي على أسماء مثل McCarthy و mcdonald و Müller تخرج بترتيب قراءة طبيعي وسلس دون الحاجة إلى أي تنظيف أو تعديل مسبق.
تحذير واحد يستحق المعرفة: الموضع الدقيق لحرف معين يحتوي على علامة تشكيلية يمكن أن يتغير ويختلف باختلاف القواعد اللغوية التي يطبقها متصفحك، نظراً لأن اللغات تختلف حول المكان الذي تقع فيه حروف مثل ü أو ø بالنسبة لجيرانها غير المشكلين. بالنسبة للقوائم اليومية للأسماء والعناوين وعناوين المنتجات والمدن، يكون هذا الإعداد الافتراضي صحيحاً ومناسباً دون الحاجة إلى أي تكوين إضافي. إذا كنت تقوم بالفرز استناداً إلى اتفاقية قاموس لغة معينة بحد ذاتها، فقم بفحص النتائج بعناية بدلاً من افتراض وجود إجابة عالمية واحدة تصلح لكل الحالات.
حساسية حالة الأحرف: الفرز وإزالة التكرارات يختلفان عن قصد
يقوم الفرز بتجميع متغيرات حالة الأحرف معاً. أما إزالة التكرارات فتقوم بتقليصها ودمجها في عنصر واحد. لا يوجد لأي منهما زر تبديل أو خيار تفعيل في هذه الصفحة.
apple
Apple
APPLE
bananaapple
bananaأزرار A-Z و Z-A و 1-9 والطول تشترك جميعها في ميزة المقارنة المدركة للإعدادات المحلية الموصوفة أعلاه، وهي مدركة لحالة الأحرف دون أن تقوم بفصل أو عزل حالات الأحرف المختلفة. إنها تبقي الكلمة بجوار توأمها المكتوب بحروف كبيرة بدلاً من تقسيم القائمة بقسوة إلى كتلة حروف كبيرة وكتلة حروف صغيرة بالطريقة التي كان سيفعلها فرز رموز الحروف الخام. لذلك فإن كلمات apple و Apple و APPLE تهبط معاً وتتجمع بجوار بعضها البعض، على الرغم من أن الترتيب الدقيق بين هذه المتغيرات الثلاثة هو من اختصاص عملية المقارنة نفسها بدلاً من كونه شيئاً تقوم أنت بضبطه أو تحديده. لا يوجد مفتاح أو زر تجاهل حالة الأحرف لأزرار الفرز نفسها.
مربع الاختيار إزالة التكرارات يلعب متعمداً بقواعد مختلفة تماماً. إنه يحول كل سطر إلى حروف صغيرة قبل فحصه ومقارنته بما تم الاحتفاظ به بالفعل، لذلك فإن هذه التهجئات الثلاثة المتطابقة تُحسب وتُعتبر كإدخال واحد فقط والنسخة الأولى منها فقط هي التي تنجو. هذه المقارنة تتجاهل دائماً وأبداً حالة الأحرف، ولا يوجد أي شيء في هذه الصفحة يمكنه تغيير هذه الحقيقة.
هل تحتاج إلى الاحتفاظ بـ Apple و apple كإدخالين منفصلين تماماً؟ هذا المربع الصغير لا يمكنه القيام بذلك. استخدم أداة إزالة التكرارات المخصصة بدلاً من ذلك، حيث يكون زر إزالة التكرارات الرئيسي هناك حساساً لحالة الأحرف بشكل افتراضي، ويتعامل زر منفصل يسمى تجاهل حالة الأحرف مع السلوك الآخر، لتتمكن من اختيار ما تريده بالضبط لكل عملية تقوم بها.
هناك زوج آخر من الأزرار يستحق التوضيح والفصل، نظراً لأن كليهما يبدوان وكأنهما ينتجان مخرجات معكوسة: Z-A يقوم بإعادة فرز القائمة إلى ترتيب أبجدي تنازلي تماماً بغض النظر عن الترتيب أو الحالة التي كانت عليها القائمة عندما قمت بالنقر. عكس لا يقوم بفرز أي شيء على الإطلاق. إنه يأخذ الترتيب الذي توجد عليه الأسطر حالياً ويقلبه ببساطة من الأعلى إلى الأسفل، لذا فإن عكس قائمة غير مرتبة لا يؤدي إلى ترتيبها أبجدياً في أي اتجاه. إنه يضع السطر الأخير في المقدمة فقط.
الأرقام، الأسطر الفارغة، والمسافات غير المرئية
الأرقام العادية لا تزال تُفرز كنصوص تحت خيار A-Z. الأسطر الفارغة تختفي تماماً. المسافات البادئة لا تختفي، وسوف تدمر ترتيبك المنشود بشكل مؤكد.
10
2
21
92
9
10
21تتعامل كل عملية فرز هنا مع السطر على أنه سلسلة نصية أولاً، وتعتبره رقماً فقط عندما تطلب ذلك بشكل صريح عن طريق النقر على 1-9. إذا قمت بتغذية زر A-Z بقائمة من الأرقام المجردة، فستحصل على العمود الأيسر الموضح أعلاه، لأن الحرف 1 أقل وأصغر من 2، و 2 أقل من 9، مهما كانت الأرقام التي تلي ذلك. هذا هو السلوك الصحيح والمنطقي لأي أداة فرز نصوص ذات غرض عام، وهذا هو السبب الكامل لوجود زر 1-9 كزر مستقل ومنفصل.
يتم التعامل مع الأسطر الفارغة قبل حدوث أي مقارنة على الإطلاق. السطر الفارغ، أو الذي يحتوي فقط على مسافات وعلامات جدولة، يتم استبعاده وتصفيته من قائمة العمل بالكامل. لا يتم فرزه إلى الأعلى، ولا يتم دفعه إلى الأسفل، ولا يتم الاحتفاظ به في مكانه الأصلي. إذا كانت القائمة التي قمت بلصقها تستخدم الأسطر الفارغة كتباعد بصري بين الإدخالات، فتوقع أن يختفي هذا التباعد بمجرد قيامك بالفرز، لأن الأداة لم ترَ أبداً هذه الأسطر كمحتوى يمكن التعامل معه في المقام الأول.
الشيء الذي يوقع الكثير من الناس في الفخ: السطر الذي يحتوي على محتوى مرئي ليس مقصوص الأطراف قبل المقارنة. إذا قمت باللصق من ملف PDF أو من خلية جدول، فيمكنك بسهولة التقاط مسافة بادئة غير مرئية، والتي يتم اعتبارها بعد ذلك كأول حرف في ذلك السطر. المسافات البيضاء يتم فرزها في مرتبة أدنى من الحروف والأرقام، لذلك يقفز السطر باتجاه الجزء العلوي من فرز A-Z حتى وإن كان النص المرئي فيه ينتمي إلى منتصف الأبجدية. إذا ظهرت القائمة المفرزة بترتيب لا يمكنك تفسيره أو فهمه من خلال النص الذي تراه، فإن وجود مسافة بادئة طائشة هو أول شيء يجب عليك التحقق منه.
ماذا يحدث في حالات التعادل، ومتى يتم إسقاط التكرارات
الأسطر المتطابقة تحافظ على ترتيبها الأصلي، وإزالة التكرارات تعمل دائماً بعد الفرز، وليس قبله أبداً. هذا الجزء الثاني هو الذي يقرر ويحدد أي نسخة ستنجو وتبقى.
Keeps the
alphabetically
first copyKeeps a
random
copyيُطلق على الفرز اسم فرز مستقر عندما تحتفظ إدخالات معينة، تعتبرها المقارنة متساوية، بترتيبها النسبي الأصلي بدلاً من خلطها وبعثرتها. منذ عام 2019، تطلبت مواصفات لغة JavaScript أن يكون الفرز المدمج للمصفوفات فرزاً مستقراً، وتقوم كل محركات المتصفحات الحالية بتطبيق ذلك، لذلك فإن أزرار A-Z و Z-A و 1-9 تحافظ جميعها على الترتيب الأصلي للأسطر التي تقارن على أنها متساوية تماماً. من الناحية العملية، يظهر هذا جلياً مع الأسطر المتطابقة فعلياً: ثلاث نسخ من عبارة متابعة مع العميل متناثرة وموزعة خلال قائمة ما، ستبقى في ترتيبها النسبي الأصلي بدلاً من التبديل والتنقل العشوائي حول بعضها البعض.
الفرز حسب الطول لا يعتمد على هذا الضمان على الإطلاق. إنه يحمل معياراً فاصلاً صريحاً لحالات التعادل: عندما يكون لسطرين نفس عدد الحروف بالضبط، تتم مقارنتهما أبجدياً بدلاً من تركهما في أي مكان وضعتهم فيه الخوارزمية. لذلك فإن الفرز حسب الطول يمكن التنبؤ به بالكامل وهو قابل للتكرار بشكل تام وموثوق حتى في قائمة مليئة بالأسطر ذات الطول المتساوي.
ترتيب العمليات وتسلسلها هو الجزء الذي يستحق التذكر والاهتمام. انقر على زر A-Z مع وضع علامة على مربع إزالة التكرارات، وستقوم الأداة بفرز القائمة بأكملها أولاً، ثم تمشي وتتحقق من النتيجة المفرزة وتُسقط أي سطر تكون قد رأت شكله بالأحرف الصغيرة من قبل. الناجي هو بالتالي الظهور الأول حسب الترتيب الأبجدي. انقر على زر خلط مع تفعيل نفس مربع الاختيار، وسيتم تشغيل عملية إزالة التكرارات ضد الترتيب العشوائي الجديد، لذا فإن تحديد أي نسخة من السطر المكرر ستنجو وتعيش هو أمر عشوائي فعلياً بدلاً من كونه مرتبطاً بالمكان الذي جلست فيه في النص الذي قمت بلصقه. إذا كنت تهتم حقاً بأي تكرار أو ظهور هو الذي تريد الاحتفاظ به، فقم بالفرز والترتيب قبل إزالة التكرارات بدلاً من القيام بالخلط العشوائي.
الأسئلة الشائعة
أدوات نصوص ذات صلة
🔒 آمن وخاص 100%
تتم جميع عمليات الترتيب والتنسيق محلياً في متصفحك - لا يتم رفع نصوصك إلى أي خادم أبداً.