٣.٨ تدريبات¶
isArray()¶
التمرين 1: تحقّق هل numbers مصفوفة. تلميح: استخدم Array.isArray(numbers).
var numbers = [1, 5, 9, 10];
console.log(Array.isArray(numbers));
النتيجة هي: true
التمرين 2: تحقّق هل names مصفوفة. تلميح: استخدم Array.isArray(names).
var names = "Nawras Ali";
console.log(Array.isArray(names));
النتيجة هي: false
التمرين 3: تحقّق هل mark مصفوفة. تلميح: استخدم Array.isArray(mark).
var mark = 200;
console.log(Array.isArray(mark));
النتيجة هي: false
التمرين 4: تحقّق هل students مصفوفة. تلميح: استخدم Array.isArray(students).
var students = ["Jojo"];
console.log(Array.isArray(students));
النتيجة هي: true
Array.isArray()
Array.isArray(arr) تُرجع true إذا كانت arr مصفوفة؛ وإلا تُرجع false.
التمرين 5: إذا كانت numbers مصفوفة، فأرجع أصغر قيمة فيها؛ وإلا فأرجع numbers .
var numbers = [9, 7, 14, 80, 19];
var res = Array.isArray(numbers) ? Math.min(...numbers) : numbers;
console.log(res);
النتيجة هي: 7
التمرين 6: إذا كانت mark مصفوفة، فأرجع مجموع قيمها؛ وإلا فأضف 25 إلى mark.
var mark = 800;
var res = Array.isArray(mark) ? mark.reduce((sum, val) => sum + val) : mark + 25;
console.log(res);
النتيجة هي: 825
التمرين 7: إذا كانت mark مصفوفة، فاضرب قيمها في 5؛ وإلا فأرجع mark.
var mark = [800];
var res = Array.isArray(mark) ? mark.map(val => val * 5) : mark;
console.log(res);
النتيجة هي: [4000]
التمرين 8: إذا كانت numbers مصفوفة، فأوجد مجموع قيمها.
var numbers = [5, 8, 10];
if(Array.isArray(numbers)){
var res = numbers.reduce((sum, val)=> sum + val);
console.log(res);
}
النتيجة هي: 23
reverse()¶
التمرين 9: إذا كانت salaries مصفوفة، فاعرض عناصرها بترتيب معكوس. تلميح: استخدم salaries.reverse()
var salaries = [100, 500, 700, 200];
if(Array.isArray(salaries)){
var reversedArr = salaries.reverse();
}
console.log(reversedArr);
النتيجة هي: (4) [200, 700, 500, 100]
التمرين 10: اعكس ترتيب المصفوفة التالية.
var arr = ["Hello", "world", "in", "reverse"];
console.log(arr.reverse())
النتيجة هي: (4) ["reverse", "in", "world", "Hello"]
التمرين 11: اعكس ترتيب المصفوفة، واعرض الأصلية والمعكوسة في وحدة التحكم.
var saying = ["You", "can", "do", "it"];
var sayingReversed = saying.reverse();
console.log("Original array: " + saying);
console.log("Reversed array: " + sayingReversed);
النتيجة كما يلي:
Original array: it,do,can,You
Reversed array: it,do,can,You
arr.reverse()
arr.reverse() تعكس ترتيب عناصر المصفوفة arr.
arr.reverse() وتُعدّل المصفوفة الأصلية.
التمرين 12: اعكس الترتيب دون تغيير المصفوفة الأصلية.
var saying = ["You", "can", "do", "it"];
var sayingCopy = [...saying];
var sayingCopyReversed = sayingCopy.reverse();
console.log("Original array: " + saying);
console.log("Reversed array: " + sayingCopyReversed);
النتيجة كما يلي:
Original array: You,can,do,it
Reversed array: it,do,can,You
التمرين 13: اعكس الترتيب دون تعديل الأصل، ثم أضف 2 إلى كل عنصر واعرض مجموع الناتج.
var arr = [5, 7, 9, 10, 0, 15];
var res = [...arr].reverse().map(val=>val+2).reduce((sum, val)=> sum+val);
console.log(res);
النتيجة هي: 58
التمرين 14: اعكس الترتيب دون تعديل الأصل، ثم اقسم كل عنصر على 10، وأوجد أصغر قيمة وأكبر قيمة.
var arr = [1, 2, 3, 4, 5, 6];
var minValue = Math.min(...[...arr].reverse().map(val=>val/10));
var maxValue = Math.max(...[...arr].reverse().map(val=>val/10));
console.log(minValue, maxValue);
النتيجة هي: 0.1 0.6
sort()¶
التمرين 15: رتّب المصفوفة تصاعديًا. تلميح: استخدم arr.sort().
var numbers = [7, 9, 1, 0, 6, 5, 8, 4, 2, 3];
var sortedNumbers = numbers.sort();
console.log(sortedNumbers);
النتيجة هي: (10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
التمرين 16: رتّب المصفوفة التالية تصاعديًا.
var words = ["Elephant", "Zebra", "Tiger", "Lion"];
var wordsSorted = words.sort();
console.log(wordsSorted);
النتيجة هي: (4) ["Elephant", "Lion", "Tiger", "Zebra"]
التمرين 17: رتّب المصفوفة، واعرض الأصلية والمرتّبة في وحدة التحكم.
var quote = ["Arise", "awake", "and", "don't", "stop", "until", "the", "goal", "is", "reached."];
var quoteSorted = quote.sort();
console.log("Original array: " + quote);
console.log("Sorted array: " + quoteSorted);
النتيجة كما يلي:
Original array: ["Arise", "awake", "and", "don't", "stop", "until", "the", "goal", "is", "reached."]
Sorted array: ['Arise', 'and', 'awake', "don't", 'goal', 'is', 'reached.', 'stop', 'the', 'until']
arr.sort()
arr.sort() تُرجع المصفوفة بعد ترتيبها.
arr.sort() وتُعدّل المصفوفة الأصلية.
التمرين 18: رتّب المصفوفة دون تغيير الأصلية.
var arr = [8, 7, 6, 0, 10];
var sortedArr = [...arr].sort();
console.log("Original array: " + arr);
console.log("Sorted array: " + sortedArr);
النتيجة كما يلي:
Original array: 8,7,6,0,10
Sorted array: 0,10,6,7,8
التمرين 19: رتّب المصفوفة دون تغيير الأصل، ثم اضرب كل قيمة في 2.5.
var arr = [8, 10, 6, 78, 10];
console.log([...arr].sort().map(value=>value*2.5));
النتيجة هي: (5) [25, 25, 15, 195, 20]
التمرين 20: رتّب المصفوفة دون تغيير الأصل، ثم أضف 1 إلى كل قيمة، وأوجد المتوسط.
var arr = [80, 47, 46, 25];
var avg = ([...arr].sort().map(val=>val+1).reduce((sum,val)=>val+sum))/arr.length;
console.log(avg);
النتيجة هي: 50.5
التمرين 21: إذا كانت values مصفوفة، فنفّذ ما يلي:
- رتّب القيم دون تغيير الأصل.
- احفظ القيم الأكبر من 50 في
highValues. - احفظ القيم الأصغر من أو المساوية لـ50 في
lowValues. - إذا كانت بعض قيم
lowValuesتساوي صفرًا، فأضف 1 إلى جميع قيمlowValues. - إذا كانت جميع قيم
highValuesتساوي 70، فاقسم جميع عناصرhighValuesعلى 5. - ثم ادمج
lowValuesوhighValuesمعًا. - اعكس ترتيب المصفوفة الناتجة.
- أوجد متوسط المصفوفة الناتجة.
var values = [50, 70, 5, 25, 0, 0, 12, 100, 80, 80, 88, 90, 13, 14, 44];
if (Array.isArray(values)){
var valuesSorted = [...values].sort();
var highValues = valuesSorted.filter(value=>value>50);
var lowValues = valuesSorted.filter(value=>value<=50);
if(lowValues.some(val=>val===0)){
lowValues = lowValues.map(val=>val+1);
}
if(highValues.every(val=>val===70)){
highValues = highValues.map(val=>val/5);
}
var newArr = [...lowValues, ...highValues].reverse();
var avg = newArr.reduce((val, sum)=>val+sum)/newArr.length;
console.log(newArr);
console.log(avg);
}
النتيجة كما يلي:
(15) [90, 88, 80, 80, 70, 100, 51, 6, 45, 26, 15, 14, 13, 1, 1]
45.333333333333336