Bitbybit Docs
    Preparing search index...

    Class Lists

    قراءة المصفوفات البسيطة من أي نوع من العناصر وبناؤها وإعادة تشكيلها. المواضع تبدأ من 0: الفهرس 0 هو العنصر الأول. تأخذ معظم الدوال خيار clone، المفعل افتراضيا، الذي ينسخ القائمة نسخا عميقا أولا بحيث لا يتغير المدخل أبدا؛ وعند إيقافه، تعمل الدوال المعدلة على القائمة في مكانها، وهو أسرع للبيانات الكبيرة. يفرغ removeAllItems دائما القائمة المعطاة له.

    Index

    Constructors

    add

    • يدرج عنصرا عند موضع؛ تنزاح العناصر من ذلك الموضع فصاعدا بمقدار واحد.

      مثال: [10, 20, 30, 40] مع 99 عند الفهرس 2 -> [10, 20, 99, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemAtIndexDto<T>

        القائمة والعنصر والفهرس وما إذا كان ينسخ

      Returns T[]

      القائمة مع العنصر المدرج

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • يدرج العنصر نفسه عند عدة مواضع من القائمة الأصلية.

      مثال: [10, 20, 30] مع 99 عند الفهارس [0, 2] -> [99, 10, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemAtIndexesDto<T>

        القائمة والعنصر والفهارس وما إذا كان ينسخ

      Returns T[]

      القائمة مع العنصر مدرجا عند كل فهرس

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • يدرج عدة عناصر، الأول عند الفهرس الأول، والثاني عند الثاني، وهكذا، كلها معدودة على القائمة الأصلية.

      يجب أن تكون الفهارس بترتيب تصاعدي وأن يكون هناك فهرس واحد لكل عنصر، وإلا رُمي خطأ. مثال: [10, 20, 30] مع العناصر [88, 99] عند الفهارس [1, 2] -> [10, 88, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemsAtIndexesDto<T>

        القائمة والعناصر وفهرس واحد لكل عنصر وما إذا كان ينسخ

      Returns T[]

      القائمة مع العناصر المدرجة

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • يضيف عنصرا في نهاية القائمة.

      مثال: [10, 20, 30] بإضافة 40 -> [10, 20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        القائمة والعنصر وما إذا كان ينسخ

      Returns T[]

      القائمة مع العنصر في نهايتها

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • يضيف عنصرا في بداية القائمة.

      مثال: [10, 20, 30] بإضافة 5 في البداية -> [5, 10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        القائمة والعنصر وما إذا كان ينسخ

      Returns T[]

      القائمة مع العنصر في بدايتها

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • يضيف عنصرا في بداية القائمة أو في نهايتها، بحسب الاختيار.

      مثال: [10, 20, 30] بإضافة 5 أولا -> [5, 10, 20, 30]؛ أخيرا -> [10, 20, 30, 5]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemFirstLastDto<T>

        القائمة والعنصر والموضع وما إذا كان ينسخ

      Returns T[]

      القائمة مع العنصر المضاف

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • يوصل عدة قوائم في قائمة واحدة، طرفا إلى طرف.

      مثال: [[1, 2], [3, 4], [5, 6]] -> [1, 2, 3, 4, 5, 6]

      Type Parameters

      • T

      Parameters

      • inputs: ConcatenateDto<T>

        القوائم المراد وصلها وما إذا كان ينسخ

      Returns T[]

      قائمة واحدة بجميع العناصر

      const all = bitbybit.lists.concatenate({ lists: [[1, 2], [3, 4], [5, 6]], clone: true });
      

    create

    • يصنع قائمة جديدة لا شيء فيها.

      مثال: -> []

      Returns []

      قائمة فارغة

    • يصنع قائمة تحمل العنصر نفسه عددا من المرات.

      مثال: 5 ثلاث مرات -> [5, 5, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      قائمة التكرارات

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • يكرر نمطا من العناصر مرة بعد مرة حتى تبلغ القائمة طولا معطى.

      مثال: [1, 2, 3] حتى الطول 7 -> [1, 2, 3, 1, 2, 3, 1]

      Type Parameters

      • T

      Parameters

      • inputs: RepeatInPatternDto<T>

        النمط والطول المراد بلوغه وما إذا كان ينسخ

      Returns T[]

      النمط المكرر، مقطوعا عند الطول

      const cycle = bitbybit.lists.repeatInPattern({ list: [1, 2, 3], lengthLimit: 7, clone: true });
      

    edit

    • يعكس ترتيب العناصر.

      مثال: [1, 2, 3, 4, 5] -> [5, 4, 3, 2, 1]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخها أولا

      Returns T[]

      القائمة المعكوسة

    • يضع العناصر بترتيب عشوائي، مختلف في كل استدعاء.

      مثال: [1, 2, 3, 4, 5] -> ربما [3, 1, 5, 2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخها أولا

      Returns T[]

      القائمة المخلوطة

    • يقلب قائمة قوائم على جانبها: تصبح الصفوف أعمدة والأعمدة صفوفا.

      يجب أن يكون لكل القوائم الداخلية الطول نفسه. مثال: [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T[]>

        قائمة القوائم وما إذا كان ينسخها أولا

      Returns T[][]

      قائمة القوائم المنقولة

      const columns = bitbybit.lists.flipLists({ list: [[0, 1, 2], [3, 4, 5]], clone: true });
      
    • يقسم القائمة إلى مجموعات من n عنصرا.

      تُحذف العناصر المتبقية في النهاية ما لم يكن keepRemainder مفعلا، فيضيفها كمجموعة أخيرة أقصر. مثال: [0, 1, 2, 3, 4, 5, 6, 7, 8] في مجموعات من 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Type Parameters

      • T

      Parameters

      • inputs: GroupListDto<T>

        القائمة وحجم المجموعة وما إذا كان يحتفظ بمجموعة أخيرة ناقصة

      Returns T[][]

      المجموعات، بالترتيب

      const pairs = bitbybit.lists.groupNth({ list: [0, 1, 2, 3, 4], nrElements: 2, keepRemainder: true });
      

    get

    • يقرأ العنصر عند موضع في القائمة، بدءا من 0.

      الفهرس الواقع خارج القائمة يرمي خطأ. مثال: [10, 20, 30, 40] عند الفهرس 2 -> 30

      Type Parameters

      • T

      Parameters

      • inputs: ListItemDto<T>

        القائمة والفهرس وما إذا كان ينسخ العنصر

      Returns T

      العنصر عند ذلك الفهرس

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • يقرأ أول عنصر في القائمة.

      مثال: [10, 20, 30, 40] -> 10

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخ العنصر

      Returns T

      العنصر الأول

    • يقرأ آخر عنصر في القائمة.

      مثال: [10, 20, 30, 40] -> 40

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخ العنصر

      Returns T

      العنصر الأخير

    • يحتفظ بكل عنصر في القائمة باحتمال معطى ويحذف الباقي، فتختلف النتيجة في كل استدعاء.

      مثال: [1, 2, 3, 4, 5] بعتبة 0.5 -> ربما [1, 3, 5]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        القائمة واحتمال الاحتفاظ بعنصر من 0 إلى 1 وما إذا كان ينسخ

      Returns T[]

      العناصر التي تم الاحتفاظ بها، بترتيبها الأصلي

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • يقتطع العناصر من فهرس بداية حتى فهرس نهاية، دون شموله.

      مثال: [10, 20, 30, 40, 50] من 1 إلى 4 -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: SubListDto<T>

        القائمة وفهرسا البداية والنهاية وما إذا كان ينسخ

      Returns T[]

      العناصر في ذلك النطاق

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • يحتفظ بكل عنصر رقم n، بدءا من إزاحة.

      مثال: [0, 1, 2, 3, 4, 5, 6, 7, 8] مع nth 3 وإزاحة 0 -> [0, 3, 6]؛ مع nth 2 وإزاحة 1 -> [1, 3, 5, 7]

      Type Parameters

      • T

      Parameters

      • inputs: GetNthItemDto<T>

        القائمة والخطوة والإزاحة التي يبدأ منها وما إذا كان ينسخ

      Returns T[]

      كل عنصر نوني، بالترتيب

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • يحتفظ بالعناصر التي يقول عندها نمط true/false متكرر true ويحذف الأخرى.

      يبدأ النمط من جديد عندما ينفد. مثال: [0, 1, 2, 3, 4, 5] مع النمط [true, true, false] -> [0, 1, 3, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      العناصر التي أبقاها النمط، بالترتيب

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • يعيد تجميع القوائم المتداخلة بحسب الموضع: العناصر الأولى من كل قائمة معا، ثم العناصر الثانية، وهكذا.

      level يحدد عدد مستويات التداخل التي تُسطح داخل كل قائمة أولا؛ 0 يعيد تجميعها كما هي. مثال: [[0, 1, 2], [3, 4, 5]] عند المستوى 0 -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: MergeElementsOfLists<T[]>

        القوائم والعمق الذي تتم إعادة التجميع عنده

      Returns T[]

      القوائم المعاد تجميعها

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • يقيس أطول قائمة بين عدة قوائم.

      مثال: [[1, 2], [3, 4, 5, 6], [7]] -> 4

      Type Parameters

      • T

      Parameters

      Returns number

      طول أطولها

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • يخبر ما إذا كان عنصر موجودا في القائمة.

      تُقارن العناصر بالهوية، فلا يُعثر على كائن إلا إذا كان الكائن نفسه تماما موجودا في القائمة. مثال: [10, 20, 30, 40] يحوي 30 -> true، يحوي 50 -> false

      Type Parameters

      • T

      Parameters

      • inputs: IncludesDto<T>

        القائمة والعنصر المراد البحث عنه

      Returns boolean

      true عندما يكون العنصر في القائمة

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • يجد موضع أول ظهور لعنصر، أو -1 عندما لا يكون في القائمة.

      مثال: [10, 20, 30, 20, 40] بالبحث عن 20 -> 1، بالبحث عن 50 -> -1

      Type Parameters

      • T

      Parameters

      • inputs: IncludesDto<T>

        القائمة والعنصر المراد البحث عنه

      Returns number

      الفهرس بدءا من 0، أو -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • يقيس مدى عمق تداخل القوائم داخل القائمة.

      مثال: [1, 2, 3] -> 1، [[1, 2], [3, 4]] -> 2، [[[1]]] -> 3

      Parameters

      Returns number

      عدد مستويات التداخل

    • يعد العناصر في القائمة.

      مثال: [10, 20, 30, 40, 50] -> 5، [] -> 0

      Type Parameters

      • T

      Parameters

      Returns number

      عدد العناصر

    remove

    • يزيل العنصر عند موضع.

      مثال: [10, 20, 30, 40, 50] بإزالة الفهرس 2 -> [10, 20, 40, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      القائمة بدون ذلك العنصر

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • يزيل أول عنصر.

      مثال: [10, 20, 30, 40] -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخها أولا

      Returns T[]

      القائمة بدون عنصرها الأول

    • يزيل آخر عنصر.

      مثال: [10, 20, 30, 40] -> [10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        القائمة وما إذا كان ينسخها أولا

      Returns T[]

      القائمة بدون عنصرها الأخير

    • يزيل عنصرا معدودا من النهاية: الفهرس 0 هو آخر عنصر، و 1 الذي يسبقه.

      مثال: [10, 20, 30, 40, 50] بإزالة الفهرس 1 من النهاية -> [10, 20, 30, 50]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveItemAtIndexDto<T>

        القائمة والفهرس من النهاية وما إذا كان ينسخ

      Returns T[]

      القائمة بدون ذلك العنصر

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • يزيل العناصر عند عدة مواضع، كلها معدودة على القائمة الأصلية.

      مثال: [10, 20, 30, 40, 50] بإزالة الفهارس [1, 3] -> [10, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      القائمة بدون تلك العناصر

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • يفرّغ القائمة المعطاة له، في مكانها: تعود المصفوفة نفسها بلا عناصر فيها.

      مثال: [10, 20, 30, 40] -> []

      Type Parameters

      • T

      Parameters

      • inputs: ListDto<T>

        القائمة المراد إفراغها

      Returns T[]

      القائمة نفسها، وقد أصبحت فارغة

    • يزيل كل عنصر رقم n، بدءا من إزاحة.

      مثال: [0, 1, 2, 3, 4, 5, 6, 7, 8] مع nth 3 وإزاحة 0 -> [1, 2, 4, 5, 7, 8]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveNthItemDto<T>

        القائمة والخطوة والإزاحة التي يبدأ منها وما إذا كان ينسخ

      Returns T[]

      القائمة بدون كل عنصر نوني

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • يحذف كل عنصر في القائمة باحتمال معطى ويحتفظ بالباقي، فتختلف النتيجة في كل استدعاء.

      مثال: [1, 2, 3, 4, 5] بعتبة 0.5 -> ربما [2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        القائمة واحتمال حذف عنصر من 0 إلى 1 وما إذا كان ينسخ

      Returns T[]

      العناصر التي بقيت، بترتيبها الأصلي

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • يزيل الأرقام المتكررة، محتفظا بأول ظهور لكل منها.

      مثال: [1, 2, 3, 2, 4, 3, 5] -> [1, 2, 3, 4, 5]

      Parameters

      Returns number[]

      الأرقام بدون تكرارات، بترتيبها الأصلي

    • يزيل الأرقام الواقعة ضمن تفاوت من رقم محتفظ به أصلا، فتُعد القيم التي لا تختلف إلا بضجيج الفاصلة العائمة الرقم نفسه.

      مثال: [1.0, 1.001, 2.0, 2.002, 3.0] بتفاوت 0.01 -> [1.0, 2.0, 3.0]

      Parameters

      Returns number[]

      الأرقام بدون التكرارات المتقاربة، بترتيبها الأصلي

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • يزيل العناصر المتكررة من أي نوع، محتفظا بأول ظهور لكل منها.

      تُقارن العناصر بالهوية، فيبقى كائنان يبدوان متساويين كلاهما. مثال: ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Type Parameters

      • T

      Parameters

      Returns T[]

      القائمة بدون تكرارات، بترتيبها الأصلي

    sorting

    • يرتب الأرقام من الأدنى إلى الأعلى، أو من الأعلى إلى الأدنى.

      مثال: [5, 2, 8, 1, 9] تصاعديا -> [1, 2, 5, 8, 9]؛ تنازليا -> [9, 8, 5, 2, 1]

      Parameters

      • inputs: SortDto<number>

        الأرقام والاتجاه وما إذا كان ينسخ

      Returns number[]

      الأرقام المرتبة

      const sorted = bitbybit.lists.sortNumber({ list: [5, 2, 8, 1, 9], orderAsc: true, clone: true });
      
    • يرتب النصوص أبجديا، من A إلى Z أو من Z إلى A.

      مثال: ['dog', 'apple', 'cat'] تصاعديا -> ['apple', 'cat', 'dog']

      Parameters

      • inputs: SortDto<string>

        النصوص والاتجاه وما إذا كان ينسخ

      Returns string[]

      النصوص المرتبة

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • يرتب الكائنات بحسب الرقم المحفوظ في إحدى خصائصها.

      مثال: [{age: 30}, {age: 20}, {age: 25}] بحسب 'age' تصاعديا -> [{age: 20}, {age: 25}, {age: 30}]

      Parameters

      • inputs: SortJsonDto<any>

        الكائنات والخاصية المراد الترتيب حسبها والاتجاه وما إذا كان ينسخ

      Returns any[]

      الكائنات المرتبة

      const byAge = bitbybit.lists.sortByPropValue({ list: [{ age: 30 }, { age: 20 }], property: "age", orderAsc: true, clone: true });
      

    transform

    • ينسج عدة قوائم في قائمة واحدة بأخذ العنصر الأول من كل منها بالتناوب، ثم الثاني من كل منها، وهكذا.

      القائمة الأقصر تخرج ببساطة حين تنفد. قائمة القوائم الفارغة ترمي خطأ. مثال: [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Type Parameters

      • T

      Parameters

      • inputs: InterleaveDto<T>

        القوائم المراد نسجها معا وما إذا كان ينسخ

      Returns T[]

      قائمة واحدة بالعناصر متناوبة

      const woven = bitbybit.lists.interleave({ lists: [[0, 1, 2], [3, 4, 5]], clone: true });