انتقل إلى المحتوى

٣.٨ تدريبات

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 مصفوفة، فنفّذ ما يلي:

  1. رتّب القيم دون تغيير الأصل.
  2. احفظ القيم الأكبر من 50 في highValues .
  3. احفظ القيم الأصغر من أو المساوية لـ50 في lowValues .
  4. إذا كانت بعض قيم lowValues تساوي صفرًا، فأضف 1 إلى جميع قيم lowValues .
  5. إذا كانت جميع قيم highValues تساوي 70، فاقسم جميع عناصر highValues على 5.
  6. ثم ادمج lowValues و highValues معًا.
  7. اعكس ترتيب المصفوفة الناتجة.
  8. أوجد متوسط المصفوفة الناتجة.
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