2.2 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d7b88367417b2b2512b47 | استخدام وسائط Rest مع وسائط الوظيفة | 1 | 301221 | use-the-rest-parameter-with-function-parameters |
--description--
من أجل مساعدتنا في إنشاء وظائف (functions) أكثر مرونة، يوفر ES6 الوسائط rest للوسائط (parameters) الوظيفة. مع وسيط rest، يمكنك إنشاء وظائف تأخذ عددا متغيرا من المعطيات (arguments). يتم تخزين هذه الـ arguments في array يمكن الوصول إليها في وقت لاحق من داخل الـ function.
تحقق من هذا الكود:
function howMany(...args) {
return "You have passed " + args.length + " arguments.";
}
console.log(howMany(0, 1, 2));
console.log(howMany("string", null, [1, 2, 3], { }));
ستعرض وحدة التحكم السلاسل You have passed 3 arguments. و You have passed 4 arguments..
يزيل وسيط rest الحاجة إلى التحقق من القائمة (array) المسمى args وتسمح لك باستعمال map() و filter() و reduce() في وسائط القائمة.
--instructions--
عدل وظيفة sum باستخدام وسيط rest بطريقة تجعل الوظيفة sum قادرة على أخذ أي عدد من المعطيات وإنتاج مجموعها.
--hints--
نتيجة sum(0,1,2) يجب أن تكون 3
assert(sum(0, 1, 2) === 3);
نتيجة sum(1,2,3,4) يجب ان تكون 10
assert(sum(1, 2, 3, 4) === 10);
نتيجة sum(5) يجب أن تكون 5
assert(sum(5) === 5);
نتيجة sum() يجب أن تكون 0
assert(sum() === 0);
يجب أن تكون sum وظيفة السهم, التي تستخدم تشكيل وسيط rest الآتي (...) على وسيط args.
assert(__helpers.removeWhiteSpace(code).match(/sum=\(\.\.\.args\)=>/));
--seed--
--seed-contents--
const sum = (x, y, z) => {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
}
--solutions--
const sum = (...args) => {
return args.reduce((a, b) => a + b, 0);
}