تحتوي لغة برمجة جافا سكريبت على العديد من الأدوات للعمل مع الوظائف. واحدة من هذه الأدوات هي القدرة على تمرير الحجج إلى وظيفة. الوسائط هي قيم يتم تمريرها داخل دالة لإجراء عمليات معينة. كقاعدة ، يتم الإعلان عن الحجج عند تحديد وظيفة.
ومع ذلك ، في بعض الأحيان يكون من الضروري الحصول على جميع وسيطات الوظيفة كمصفوفة بحيث يمكن تطبيق عمليات مختلفة عليها. هناك كائن الحجج الخاصة في جافا سكريبت لهذا الغرض. إنها مصفوفة زائفة تحتوي على جميع الوسائط التي تم تمريرها إلى الوظيفة.
نتيجة الإرجاع;
}
- وحدة التحكم.سجل (مجموع(1, 2, 3, 4)); // 10
- وحدة التحكم.سجل (مجموع(10, 20, 30)); // 60
- في هذا المثال ، نعلن دالة المجموع دون تحديد الوسيطات. داخل وظيفة ، ونحن نستخدم الحجج الزائفة مجموعة للذهاب من خلال جميع الحجج وتضيف ما يصل قيمها. يتم إرجاع النتيجة باستخدام بيان الإرجاع.
- يتيح لك استخدام كائن الوسائط إنشاء وظائف يمكن أن تأخذ عددا مختلفا من الوسائط. هذا مفيد بشكل خاص للعمل مع كمية غير محددة من البيانات ، عندما لا يكون معروفا مسبقا عدد الوسائط التي سيتم تمريرها إلى الوظيفة.
- استخراج الحجج وظيفة في جافا سكريبت: أفضل الطرق والأساليب
- مراجعة:
- 1. وسيطات الدالة وكائن' الحجج':
- 2. انتشار المشغل:
- 3. معلمات الراحة:
- 4. الصفيف.من الطريقة:
- باستخدام كائن الوسائط
- باستخدام عامل الانتشار
- تدمير مجموعة من الحجج
- باستخدام المصفوفة.من () وظيفة
باستخدام عامل الراحة
باستخدام وظيفة المكالمة ()
- باستخدام تطبيق () وظيفة
سؤال وجواب
كيف يمكنني الحصول على مجموعة من الحجج وظيفة في جافا سكريبت?
كيف يمكنني تحويل الزائفة مجموعة من الحجج لمجموعة من الحجج وظيفة في جافا سكريبت?
هل من الممكن في جافا سكريبت لتمرير عدد التعسفي من الحجج إلى وظيفة?
استخراج الحجج وظيفة في جافا سكريبت: أفضل الطرق والأساليب
- عند العمل مع وظائف في جافا سكريبت ، هناك حتما حاجة للوصول إلى الحجج التي تم تمريرها إلى وظيفة. دعونا ننظر في بعض من أفضل الطرق والأساليب لاستخراج الحجج وظيفة.
الحجج عبر المتغيرات: أسهل طريقة هي تعيين كل وسيطة إلى دالة لمتغير منفصل. على سبيل المثال:
مجموع الدالة (أ ، ب) {
دع النتيجة = أ + ب;
وحدة التحكم.سجل (نتيجة);
}
مجموع (5 ، 10) ؛ / / الإخراج: 15
الحجج عبر كائن وسيطة: في جافا سكريبت ، يوجد كائن يسمى" الوسائط " يحتوي على جميع الوسائط التي تم تمريرها إلى الوظيفة. يمكن فهرسة هذا الكائن كمصفوفة للوصول إلى كل وسيطة. على سبيل المثال:
مجموع الدالة () {
- دع النتيجة = 0;
إلى عن على (دعني = 0; أنا < الحجج.الطول ؛ أنا {) {
النتيجة + = الحجج [أنا];
}
وحدة التحكم.سجل (نتيجة);
}
المجموع(5, 10, 15); // انتاج: 30
باستخدام مشغل التمديد: باستخدام"..."المشغل ، يمكنك إنشاء مصفوفة تحتوي على جميع وسيطات الوظيفة. على سبيل المثال:
مجموع وظيفة (...أرغس) {
- دع النتيجة = 0;
إلى عن على (دعني = 0; أنا < الحجج.الطول ؛ أنا {) {
النتيجة + = الحجج [أنا];
}
وحدة التحكم.سجل (نتيجة);
}
المجموع(5, 10, 15); // انتاج: 30
تدمير مجموعة من الوسائط: باستخدام التدمير ، يمكنك الوصول إلى كل وسيطة عن طريق تعيينها لمتغير منفصل. على سبيل المثال:
مجموع الدالة ([أ ، ب ، ج]) {
دع النتيجة = أ + ب + ج;
وحدة التحكم.سجل (نتيجة);
}
المجموع([5, 10, 15]); // انتاج: 30
يعتمد اختيار كيفية استخراج الحجج على المتطلبات المحددة وهيكل الوظيفة. واختيار الطريقة الصحيحة تساعدك على العمل مع الحجج في جافا سكريبت أكثر كفاءة ومرونة.
مراجعة:
جافا سكريبت هي واحدة من لغات البرمجة الأكثر شعبية المستخدمة لتطوير تطبيقات الويب. لديها العديد من الوظائف المفيدة ، بما في ذلك القدرة على الحصول على مجموعة من وسيطات الوظائف التي تم تمريرها عند الاتصال بها. في هذا الاستعراض ، سننظر في طرق مختلفة للحصول على مجموعة من وسيطات الوظائف في جافا سكريبت.
1. وسيطات الدالة وكائن' الحجج':
يوفر جافا سكريبت كائن 'الحجج' الخاصة المتاحة داخل أي وظيفة. يحتوي هذا الكائن على قائمة بجميع الوسائط التي تم تمريرها إلى الوظيفة ويعمل مثل صفيف. يمكنك الوصول إلى كل وسيطة باستخدام الفهرس من كائن 'الوسائط'.
مثال الاستخدام:
مجموع الدالة (أ ، ب) {
وحدة التحكم.سجل (الحجج) ؛ / / مخرجات جميع الوسائط التي تم تمريرها إلى الوظيفة
دع النتيجة = أ + ب;
نتيجة الإرجاع;
}
المجموع(5, 10, 15); // النواتج: [5 ، 10 ، 15]
2. انتشار المشغل:
في جافا سكريبت 6 (إس 6) ، تمت إضافة عنصر نحوي جديد — عامل الانتشار (...) ، والذي يسمح لك بتوسيع مصفوفة أو كائن أو سلسلة واستخدام عناصرها كوسيطات لوظيفة.
مثال الاستخدام:
مجموع الدالة (أ ، ب ، ج) {
دع النتيجة = أ + ب + ج;
نتيجة الإرجاع;
}
دع الأرقام = [1 ، 2 ، 3];
وحدة التحكم.سجل (مجموع (...أرقام)) ؛ / / المخرجات: 6
3. معلمات الراحة:
المعلمات ريست هي ميزة جديدة من جافا سكريبت 6 (إس 6) التي تسمح لك لتعيين عدد متغير من الحجج وظيفة عن طريق معلمة يمثلها القولون (على سبيل المثال،...أرغس). المعلمة بقية يجمع كل الحجج التي تم تمريرها إلى وظيفة ويقدم لهم كمصفوفة.
مثال الاستخدام:
تسلسل الدالة (...أرغس) {
دع النتيجة = أرجس.انضم ("");
return result;
}
console.log(concatenateStrings("Hello", "world")); // Выводит: "Hello world"
console.log(concatenateStrings("I", "love", "JavaScript")); // Выводит: "I love JavaScript"
4. Метод Array.from:
Метод Array.from преобразует набор объектов, имеющих длину или итерируемость, в массив. يمكنك استخدامه لتحويل كائن 'الحجج' أو أي كائن قابل للتكرار الأخرى إلى مجموعة من الحجج وظيفة.
مثال الاستخدام:
مجموع الدالة () {
نتيجة الإرجاع;
في جافا سكريبت ، يمكن للدالة أن تأخذ أي عدد من الحجج ، دون تعريفها صراحة في الوظيفة نفسها. للوصول إلى هذه الوسائط داخل دالة ، يمكنك استخدام كائن
كائن
الطول
، مما يشير إلى عدد الحجج.
باستخدام الكائن
الحجج
يمكن أن يكون مفيدا عندما لا تعرف مسبقا عدد الوسائط التي سيتم تمريرها إلى دالة ، أو عندما تريد إنشاء وظيفة يمكن أن تأخذ عددا متغيرا من الوسائط.
للوصول إلى الوسائط الفردية من خلال الفهرس الخاص بها ، يمكنك استخدام بناء الجملة
الحجج [فهرس]
. يبدأ ترقيم الوسائط من 0. على سبيل المثال ، سيكون للوسيطة الأولى فهرس 0 ، والثاني سيكون له فهرس 1 ، وهكذا.
مثال:
مجموع الدالة () {
مجموع فار = 0;
}
، وتلخيص قيمها. ستكون نتيجة استدعاء دالة بالوسيطات 1 ، 2 ، 3 ، 4 ، 5 هي الرقم 15.
كائن
الحجج
كما أن لديها
الملكية كالي
، والتي تشير إلى الوظيفة نفسها ، والتي تم استدعاء الكائن بداخلها
الحجج
. يمكن أن تكون هذه الخاصية مفيدة عندما تحتاج إلى استدعاء دالة بشكل متكرر ، لكنك لا تعرف اسمها.
مثال:
وظيفة مضروب (ن) {
إذا (ن === 0) {
n
باستخدام العودية. داخل الوظيفة ، تسمى الوظيفة نفسها باستخدام
الملكية كالي
من الكائن
الحجج
. نتيجة استدعاء وظيفة
مضروب (5)
سيكون الرقم 120.
باستخدام عامل الانتشار
يعد عامل الانتشار (المعروف أيضا باسم عامل الانحلال أو الانتشار) طريقة ملائمة للحصول على مجموعة من وسيطات الوظائف في جافا سكريبت. يسمح لك بتوسيع (رش) كائن قابل للتكرار ، مثل مصفوفة أو سلسلة ، داخل تعبير.
لاستخدام عامل الانتشار ، تحتاج إلى كتابة ثلاث نقاط أمام الكائن المتكرر. على سبيل المثال:
أرقام كونست = [1 ، 2 ، 3];
وحدة التحكم.سجل(...أرقام);
// الإخراج: 1 2 3
يمكن أيضا استخدام عامل الانتشار لإنشاء مصفوفة جديدة أو إضافة عناصر إلى مصفوفة موجودة أو تمرير مصفوفة كوسيطات إلى دالة:
1. إنشاء مصفوفة جديدة:
أرقام كونست = [1 ، 2 ، 3];
كونست نيونومرز = [...أرقام, 4, 5];
وحدة التحكم.سجل (أرقام جديدة);
// الإخراج: [1, 2, 3, 4, 5]
2. إضافة عناصر إلى مصفوفة موجودة:
أرقام كونست = [1 ، 2 ، 3];
كونست نيونومرز = [0,...أرقام, 4, 5];
وحدة التحكم.سجل (أرقام جديدة);
// الإخراج: [0, 1, 2, 3, 4, 5]
3. تمرير صفيف كوسيطات إلى الوظيفة:
أرقام كونست = [1 ، 2 ، 3];
مجموع الدالة (أ ، ب ، ج) {
العودة أ + ب + ج;
}
نتيجة كونست = مجموع (...أرقام);
وحدة التحكم.سجل (نتيجة);
// الإخراج: 6
يمكن أيضا استخدام عامل الانتشار مع كائنات أخرى قابلة للتكرار ، مثل السلاسل أو الكائنات. عند استخدامها مع الكائنات ، يقوم عامل الانتشار بإنشاء كائن جديد عن طريق نسخ خصائص من الكائن الأصلي:
كونست أوبج1 = { أ: 1 ، ب: 2 };
كونست أوبج2 = { ج: 3, ...كائن 1 };
وحدة التحكم.سجل (كائن 2);
// الإخراج: { أ: 1 ، ب: 2 ، ج: 3 }
عامل الانتشار هو أداة قوية تبسط العمل مع المصفوفات والكائنات. يسمح لك بالتعامل مع برمجة جافا سكريبت بشكل أكثر مرونة وكفاءة.
حجة
حجة تدمير المصفوفة تدمير المصفوفة هي طريقة لاستخدام بناء جملة التدمير في جافا سكريبت لاستخراج عناصر مصفوفة وسيطة وتعيينها للمتغيرات الفردية.
لاستخدام تدمير مجموعة من الوسيطات ، يجب عليك تحديد دالة وتحديد مجموعة الوسيطات بين قوسين. بعد ذلك ، عند الإعلان عن المتغيرات ، يمكنك استخدام بناء جملة التدمير ، وتحديد عناصر مجموعة الوسائط التي يجب استخراجها.
- وحدة التحكم.سجل ('الحد الأقصى لعدد:' + ماكس ) ;
- ، وهي مجموعة.
- و
- جيتمينماكس
دعا مع مجموعة
[10, 5]
، تظهر الخطوط في وحدة التحكم
الحد الأدنى: 10
و
الحد الأقصى هو 5
.
يتيح لك تدمير مجموعة الوسائط العمل بشكل أكثر مرونة مع وسيطات الوظيفة ، واستخراج القيم الضرورية فقط وتعيين أسماء متغيرات ملائمة لها.
باستخدام المصفوفة.من () وظيفة
الصفيف.من () الدالة هي طريقة ثابتة تقوم بتحويل كائن يشبه الصفيف أو قابل للتكرار إلى مثيل صفيف جديد.
واحدة من الاستخدامات المفيدة للمصفوفة.من () وظيفة هو الحصول على مجموعة من الحجج وظيفة. عندما تقبل الدالة عددا متغيرا من الوسائط ، يمكنك استخدام المصفوفة.من () وظيفة لتحويل الوسائط إلى صفيف.
مثال الاستخدام:
مجموع وظيفة (...أرغس) {
أرقام كونست = صفيف.من (الأرجنتين);
دع المجموع = 0;
ل (السماح لعدد من الأرقام) {
مجموع + = عدد;
}
إجمالي العائد;
}
نتيجة كونست = مجموع(1, 2, 3, 4, 5);
وحدة التحكم.سجل (نتيجة) ؛ / / 15
في المثال أعلاه ، تأخذ دالة المجموع () عددا متغيرا من الوسيطات باستخدام صيغة المعلمة ريست (...أرغس). ثم ، وذلك باستخدام مجموعة.من (وسائط) وظيفة ، يتم تحويل الحجج إلى مجموعة من الأرقام. بعد ذلك ، في ل-من حلقة ، يتم إضافة جميع الأرقام في مجموعة معا ، ويتم إرجاع النتيجة.
وهكذا ، فإن مجموعة.من () وظيفة يجعل من السهل الحصول على مجموعة من الحجج وظيفة في جافا سكريبت ، والتي يمكن أن تكون مفيدة في كثير من الحالات.
باستخدام عامل الراحة
طريقة واحدة للحصول على مجموعة من الحجج وظيفة في جافا سكريبت هو استخدام المشغل ريست. المشغل بقية يسمح لك لتمرير عدد متغير من الحجج إلى وظيفة والوصول إليها كمصفوفة.
يتم كتابة بيان الباقي على شكل ثلاث نقاط قبل المعلمة الأخيرة للدالة:
وظيفة وظيفتي (أرج1, أرج2,...بقية) {
// ريست هي مجموعة من جميع الحجج الأخرى
}
في المثال أعلاه ، أرغ 1 و أرغ 2 هي الحجج المعتادة للدالة ، والباقي هو مجموعة تحتوي على جميع الحجج الأخرى.
على سبيل المثال ، إذا استدعنا دالة بالوسيطات التالية:
وظيفتي(1, 2, 3, 4, 5);
ثم سيحتوي الباقي على مصفوفة [3 ، 4 ، 5]. يمكننا الوصول إلى عناصر صفيف الراحة باستخدام طرق الصفيف المعتادة:
وظيفة وظيفتي (أرج1, أرج2,...بقية) {
وحدة التحكم.سجل (بقية [0]) ؛ / / 3
وحدة التحكم.سجل (بقية.طول) ؛ / / 3
}
عامل التشغيل الباقي مناسب في المواقف التي نريد فيها معالجة عدد تعسفي من الوسائط ، على سبيل المثال ، عند إنشاء وظيفة تضيف جميع الوسائط الرقمية:
مجموع وظيفة (...أرقام) {
دع المجموع = 0;
ل (السماح لعدد من الأرقام) {
مجموع + = عدد;
}
إجمالي العائد;
}
وحدة التحكم.سجل (مجموع(1, 2, 3)); // 6
وحدة التحكم.سجل (مجموع(4, 5, 6, 7)); // 22
في هذا المثال ، يسمح لك عامل التشغيل الباقي بتمرير عدد عشوائي من الأرقام إلى دالة المجموع ، وستقوم الوظيفة بإضافتها جميعا معا.
يمكن أيضا استخدام مشغل الباقي مع معلمات الوظائف الأخرى:
وظيفة تتضاعف (مضاعف,...أرقام) {
دع المجموع = 1;
ل (السماح لعدد من الأرقام) {
المجموع * = العدد;
}
مضاعف العائد * المجموع;
}
وحدة التحكم.سجل (ضرب(2, 1, 2, 3)); // 12
وحدة التحكم.سجل (ضرب (3 ، 4 ، 5)); // 60
- في هذا المثال ، لا يتم تضمين الوسيطة الأولى للمضاعف في مجموعة ريست ، وجميع الوسائط الأخرى هي عناصر من مجموعة ريست.
- يتيح لك استخدام عامل التشغيل الباقي إنشاء وظائف أكثر مرونة يمكنها التعامل مع عدد مختلف من الوسائط اعتمادا على الموقف المحدد.
باستخدام وظيفة المكالمة ()
| وظيفة المكالمة () هي إحدى الطرق لاستدعاء وظيفة في جافا سكريبت وتسمح لك بتغيير سياق تنفيذ الوظيفة ، أي قيمة هذه الكلمة الرئيسية داخل الوظيفة. | يبدو بناء جملة وظيفة المكالمة () كما يلي: |
|---|---|
وظيفة.اتصل (هذا ، أرغ 1 ، أرغ 2،...) | |
أين: | |
هذه هي القيمة التي سيتم استخدامها كسياق لتنفيذ الوظيفة. | |
أر 1, أر 2,... هي الحجج التي سيتم تمريرها إلى الوظيفة. | |
باستخدام وظيفة المكالمة () ، يمكنك الوصول إلى طرق كائن ، حتى لو لم تكن خصائصه. على سبيل المثال: | كود |
النتيجة
فار أوبج = {الاسم: "جون"};
| وظيفة سايهيلو () { | وحدة التحكم.سجل ("مرحبا" + this.name); |
|---|---|
} | |
(سايهيلو).دعوة (كائن) ؛ / / مرحبا ، جون | |
مرحبا ، جون | |
في المثال أعلاه ، يتم استدعاء دالة سايهيلو () باستخدام دالة الاستدعاء () ، ويتم تحديد كائن الكائن كسياق التنفيذ. ونتيجة لذلك ، فإن طريقة سايهيلو() يحصل على الوصول إلى خاصية اسم الكائن أوبج وإخراج الرسالة المقابلة إلى وحدة التحكم. | |
أيضا ، يمكن أن تكون وظيفة المكالمة () مفيدة عند استخدام الميراث في جافا سكريبت. على سبيل المثال: | |
كود |
النتيجة
وظيفة الحيوان (الاسم) {
this.name = الاسم;
}
وظيفة القط (الاسم) {
| حيوان.اتصل(هذا ، الاسم); |
|---|
| } |
| في هذا المثال ، يدعو منشئ القط وظيفة الحيوان باستخدام وظيفة المكالمة (). يتيح لك ذلك وراثة خصائص الكائن الحيواني في كائن القط واستخدامها عند إنشاء مثيلات فئة القط. |
وبالتالي ، توفر وظيفة الاتصال () المرونة والتحكم عند استدعاء الوظائف في جافا سكريبت ، مما يسمح لك بتعيين سياق التنفيذ بشكل صريح وتمرير الوسائط إلى الوظيفة.
باستخدام تطبيق () وظيفة
في جافا سكريبت ، وتطبيق () وظيفة يسمح لك لاستدعاء وظيفة مع قيمة معينة من هذا وتمرير الحجج إليها كمصفوفة.
بناء جملة وظيفة تطبيق () كما يلي:
تطبيق (ثيسارج، [أرجسراي])
ثيسارج: كائن سيتم استخدامه كقيمة لهذا عند استدعاء الدالة.
أرجساراي: مجموعة من الحجج التي سيتم تمريرها إلى الوظيفة.
مثال على استخدام وظيفة تطبيق() :
مجموع الدالة (أ ، ب) {
العودة أ + ب;
}
أرقام كونست = [1 ، 2];
نتيجة كونست = مجموع.تطبيق (لاغية ، أرقام);
وحدة التحكم.سجل (نتيجة) ؛ / / النواتج 3
في هذا المثال ، يتم استدعاء دالة المجموع () بالوسيطتين 1 و 2 التي تم تمريرها كمصفوفة. تجعل وظيفة التطبيق () كل عنصر من عناصر المصفوفة وسيطة منفصلة لوظيفة المجموع (). وبالتالي ، فإن نتيجة استدعاء دالة المجموع () ستكون مجموع الرقمين 1 و 2 يساوي 3.
يعد استخدام وظيفة التطبيق () مفيدا بشكل خاص في الحالات التي يجب فيها تمرير عدد غير متوقع من الوسائط إلى دالة أو عندما يتم تخزين الوسائط في مصفوفة.