30- دروس جافا سكربت – JS Array Methods

## مقدمة إلى أساليب المصفوفات في JavaScript

تُعد المصفوفات (Arrays) في JavaScript من الهياكل البيانية الأساسية التي تُستخدم لتخزين مجموعات من العناصر. لتسهيل التعامل مع هذه المجموعات، توفر JavaScript مجموعة من الأساليب المدمجة التي تتيح للمطورين تنفيذ عمليات متنوعة بسهولة وكفاءة. سنقوم في هذا المقال بتفصيل بعض الأساليب الأكثر شيوعًا واستخدامًا مع أمثلة توضيحية.

### 1. `push()` و`pop()`

– **`push()`**: يُستخدم لإضافة عنصر أو أكثر إلى نهاية المصفوفة.
– **`pop()`**: يُستخدم لإزالة العنصر الأخير من المصفوفة.

let fruits = ['apple', 'banana'];
fruits.push('orange'); // ['apple', 'banana', 'orange']
let lastFruit = fruits.pop(); // ['apple', 'banana'], lastFruit = 'orange'

### 2. `shift()` و`unshift()`

– **`shift()`**: يُزيل العنصر الأول من المصفوفة.
– **`unshift()`**: يُضيف عنصر أو أكثر إلى بداية المصفوفة.

let numbers = [1, 2, 3];
numbers.unshift(0); // [0, 1, 2, 3]
let firstNumber = numbers.shift(); // [1, 2, 3], firstNumber = 0

### 3. `forEach()`

يتم استخدام `forEach()` لتنفيذ دالة معينة لكل عنصر في المصفوفة.

let colors = ['red', 'green', 'blue'];
colors.forEach(function(color) {
  console.log(color);
});
// Output: red, green, blue

### 4. `map()`

تُستخدم `map()` لإنشاء مصفوفة جديدة من خلال تطبيق دالة معينة على كل عنصر في المصفوفة الأصلية.

let numbers = [1, 2, 3];
let squaredNumbers = numbers.map(function(number) {
  return number * number;
});
// squaredNumbers = [1, 4, 9]

### 5. `filter()`

تُستخدم `filter()` لإنشاء مصفوفة جديدة تحتوي على كل [شركة برمجة مصرية] العناصر التي تحقق شرطًا معينًا.

let ages = [18, 25, 30, 15];
let adults = ages.filter(function(age) {
  return age >= 18;
});
// adults = [18, 25, 30]

### 6. `reduce()`

تُستخدم `reduce()` لتطبيق دالة على كل عناصر المصفوفة لتقليصها إلى قيمة واحدة.

let numbers = [1, 2, 3, 4];
let sum = numbers.reduce(function(total, number) {
  return total + number;
}, 0);
// sum = 10

### 7. `find()` و`findIndex()`

– **`find()`**: يُعيد أول عنصر في المصفوفة يحقق شرطًا معينًا.
– **`findIndex()`**: يُعيد فهرس أول عنصر في المصفوفة يحقق شرطًا معينًا.

let students = [{name: 'Alice', grade: 85}, {name: 'Bob', grade: 92}];
let highScorer = students.find(function(student) {
  return student.grade > 90;
});
// highScorer = {name: 'Bob', grade: 92}

let highScorerIndex = students.findIndex(function(student) {
  return student.grade > 90;
});
// highScorerIndex = 1

### 8. `includes()` [شركة برمجة مصرية]

يتم استخدام `includes()` للتحقق مما إذا كانت المصفوفة تحتوي على عنصر معين.

let pets = ['cat', 'dog', 'bat'];
let hasCat = pets.includes('cat'); // true
let hasDuck = pets.includes('duck'); // false

### 9. `join()`

يتم استخدام `join()` لدمج جميع عناصر المصفوفة في سلسلة نصية واحدة، باستخدام فاصل محدد.

let words = ['Hello', 'World'];
let sentence = words.join(' '); // 'Hello World'

### 10. `slice()` و`splice()`

– **`slice()`**: يُعيد جزء من المصفوفة ككائن مصفوفة جديد، دون تعديل المصفوفة الأصلية.
– **`splice()`**: يُضيف أو يُزيل عناصر من المصفوفة الأصلية.

let animals = ['ant', 'bison', 'camel', 'duck'];
let someAnimals = animals.slice(1, 3); // ['bison', 'camel']

animals.splice(2, 1, 'elephant'); // ['ant', 'bison', 'elephant', 'duck']

### خاتمة

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