إجراء تغييرات على المصفوفات

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

غالبًا ما يتعين تغيير محتويات المصفوفة، مثل الحاجة إلى إزالة عنصر من مخزون اللاعب. يحتوي Luau على دوال مدمجة للاستخدام مع الجداول لتسهيل ذلك.

ستتناول هذه المقالة الدوال الجاهزة للاستخدام مع الجداول مثل الإضافة والإزالة، بينما تصف كيفية البحث عن قيمة.

لتطبيق هذه المهارات، ستقوم بإنشاء نص برمجي يساعد في إدارة مخزون اللاعب.

إضافة قيم إلى المصفوفات

لإضافة قيمة جديدة إلى مصفوفة، استخدم table.insert(array, valueToInsert). يمكن أن تكون المعلمة الثانية أي قيمة مثل سلسلة نصية، رقم، أو كائن كامل، مثل Player أو IntValue.

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

  1. أنشئ مصفوفة فارغة باسم playerItems.

    playerItems = {}
  2. أضف عناصر المخزون إلى المصفوفة عن طريق كتابة table.insert(). في الأقواس، اكتب playerItems، الجدول الذي ستضيف إليه، متبوعًا بسلسلة نصية لكل عنصر. أدخل على الأقل ثلاث قيم.

    playerItems = {}
    table.insert(playerItems, "جرعة")
    table.insert(playerItems, "خبز")
    table.insert(playerItems, "حقيبة نوم")
    print(playerItems)
  3. قم بتشغيل المشروع. في الإخراج، قم بتوسيع النقاط الثلاث ... لرؤية الجدول المطبوعة.

إزالة القيم من المصفوفات

لإزالة قيمة، مثل إذا استخدم اللاعب عنصرًا أو غادر شخص ما في قائمة اللاعبين النشطين اللعبة، استخدم table.remove(). اعتمادًا على المعلمات المقدمة، يمكن أن تقوم الدالة إما بإزالة القيمة الأخيرة من الجدول، أو في فهرس محدد.

إزالة القيمة الأخيرة

أحيانًا يحتاج النص البرمجي إلى إزالة عنصر محدد. على سبيل المثال، إزالة العنصر الأول في مخزون اللاعب، أو اختيار اللاعب الأول في قائمة. لإزالة القيمة الأخيرة في مصفوفة، استخدم table.remove(arrayName). في هذه الحالة، المعلمة الوحيدة المطلوبة هي الجدول نفسه.

  1. استخدم مصفوفة العناصر من المثال السابق. ثم، لإزالة القيمة الأخيرة من الجدول، في هذه الحالة "حقيبة نوم"، اكتب table.remove(playerItems)

    playerItems = {}
    table.insert(playerItems, "جرعة")
    table.insert(playerItems, "خبز")
    table.insert(playerItems, "حقيبة نوم")
    table.remove(playerItems)
    print(playerItems)
  2. قم بتشغيل المشروع. في نافذة الإخراج، يجب ألا تظهر القيمة الأخيرة، "حقيبة نوم".

الإزالة حسب الفهرس

لإزالة قيمة في نقطة محددة في المصفوفة، أدخل في المعلمة الثانية الفهرس الذي تريد إزالته، مثل table.remove(arrayName, 1).

  1. باستخدام نفس الجدول، اكتب table.remove(). في المعلمات، أدخل اسم الجدول و 1، القيمة التي تريد إزالتها.

    playerItems = {}
    table.insert(playerItems, "جرعة")
    table.insert(playerItems, "خبز")
    table.insert(playerItems, "حقيبة نوم")
    table.remove(playerItems, 1)
  2. قم بتشغيل المشروع. تحقق من أن القيمة الأولى، "جرعة" قد أزيلت.

البحث عن القيم في مصفوفة

للعثور على قيم محددة في المصفوفات، مثل اسم اللاعب الفائز، استخدم دالة table.find(). بدلاً من ذلك، يمكنك كتابة دالة البحث الخاصة بك باستخدام حلقات for وعبارات if.

العثور على وإرجاع قيمة واحدة

للعثور على قيمة في مصفوفة، أنشئ دالة باسم findValue() التي تمر عبر مصفوفة وتتوقف في المرة الأولى التي تجد فيها قيمة مطابقة.

بمجرد أن تجد القيمة، ستستخدم الدالة الكلمة الرئيسية return لإرجاع فهرس تلك القيمة. مع الفهرس، يمكنك إزالتها من المصفوفة.

  1. انسخ المصفوفة المسماة playerItems أدناه.

    local playerItems = {
    "جرعة",
    "خبز",
    "خبز",
    "حقيبة نوم"
    }
  2. اكتب دالة جديدة باسم findValue() مع معلمين:

    • whichArray - المصفوفة التي سيتم البحث من خلالها.

    • itemName - السلسلة النصية المحددة التي سيتم التحقق منها.

      local function findValue(whichArray, itemName)
      end
  3. في findValue(), استخدم حلقة for للتحقق مما إذا كانت أي قيمة في المصفوفة تطابق itemName. إذا كانت القيمة تطابق، استخدم الكلمة الرئيسية return لإرجاع القيمة الموجودة في currentIndex.

    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    return currentIndex
    end
    end
    end
  4. اختبر دالة البحث عن طريق إنشاء متغير باسم valueFound واستدعاء findValue(). مرر المصفوفة للبحث، وما القيمة التي يجب البحث عنها. قم بتشغيل الكود لتأكيد أن الإخراج المتوقع هو الفهرس 2.

    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    --يرسل قيمة currentIndex مرة أخرى
    return currentIndex
    end
    end
    end
    local valueFound = findValue(playerItems, "خبز")
    print("القيمة في الفهرس " .. valueFound)

إزالة قيمة

إذا تم العثور على قيمة باستخدام دالة البحث، يمكن إزالتها. تحقق مما إذا كانت قيمة موجودة باستخدام عبارة if.

  1. تحقق مما إذا كانت قيمة داخل valueFound؛ إذا كان الأمر كذلك، قم بإزالة القيمة باستخدام table.remove().

    if valueFound then
    table.remove(playerItems, valueFound)
    end
  2. اطبع المصفوفة باستخدام الكود أدناه.

    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("فهرس " .. index .. ": " .. itemString)
    end
  3. اختبر اللعبة وتحقق من أن أول قيمة "خبز" قد أزيلت من المصفوفة. حاول إزالة قيم أخرى عن طريق تغيير المعلمة الثانية في findValue().

    لاحظ أنه نظرًا لأن هذه الدالة تم استدعاؤها مرة واحدة، فقد تمت إزالة أول حالة فقط من "خبز". ستتناول القسم التالي كيفية العثور على وإزالة جميع الحالات.

العثور على وإزالة جميع القيم المحددة

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

  1. استخدم مصفوفة باسم playerItems تحتوي على أربعة قيم على الأقل ومجموعة من التكرارات.

    local playerItems = {
    "جرعة",
    "خبز",
    "خبز",
    "حقيبة نوم"
    }
  2. للمرور عبر المصفوفة، أنشئ حلقة for تمر عكسيًا عبر playerItems، بدءًا من #playerItems، وانتهاءً عند 1، وزيادة بمقدار -1.

    for index = #playerItems, 1, -1 do
    end
  3. في الحلقة، استخدم عبارة if للتحقق مما إذا كانت القيمة داخل playerItems[index] تساوي "خبز"، وإذا كان الأمر كذلك، قم بإزالة العنصر.

    for index = #playerItems, 1, -1 do
    if playerItems[index] == "خبز" then
    table.remove(playerItems, index)
    end
    end
  4. استخدم الكود أدناه لإضافة حلقة for ثانية تطبع المصفوفة.

    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("فهرس " .. index .. ": " .. itemString)
    end
  5. قم بتشغيل النص البرمجي وتحقق من أن جميع القيم المسماة "خبز" قد أزيلت.

الملخص

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

يمكن استخدام الكلمة الرئيسية return لإيقاف حلقة، وإرسال المعلومات مرة أخرى حيثما دعت الحاجة.

يمكن الإشارة إلى نسخة مكتملة من النص البرمجي أدناه.

يتضمن المشروع التالي جميع النصوص البرمجية في هذا الدرس. قم بتنزيله هنا.

لاحظ أن جميع النصوص البرمجية موجودة في ServerScriptService ومعطلة. لاستخدام نص برمجي، في خصائصه، قم بإلغاء تحديد حقل المعطل وتشغيل الاستوديو.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.