"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > صفيف

صفيف

تم النشر بتاريخ 2024-11-23
تصفح:812

Array

الطرق هي fns التي يمكن استدعاؤها على الكائنات
المصفوفات هي كائنات، وبالتالي فهي تحتوي أيضًا على طرق في JS.

الشريحة (البدء): استخراج جزء من المصفوفة في مصفوفة جديدة، دون تغيير المصفوفة الأصلية.

let arr = ['a','b','c','d','e'];

// Usecase: Extract till index passed as argument
arr.slice(2); // [ 'c', 'd', 'e' ]

// Usecase: Extract from [first index] to [second index-1] value.
arr.slice(2,4); // [ 'c', 'd' ] i.e Length of array will be end-begin or 4-2 = 2 

// Usecase: Extract last 2 elements
arr.slice(-2); // [ 'd', 'e' ]

// Usecase: Extract the last element.
arr.slice(-1);  // [ 'e' ]  

// Usecase: Extract from index passed to leaving the last two elements.
arr.slice(1,-2);  // [ 'e' ]  

// Usecase: Create a shallow copy of an array
arr.slice(); // 1st way
[...arr]; // 2nd way
أي أن طول المصفوفة سيكون من النهاية إلى البداية أو 4-2 = 2 // حالة الاستخدام: قم باستخراج العنصرين الأخيرين arr.slice(-2); // ['د'، 'ه' ] // حالة الاستخدام: استخرج العنصر الأخير. arr.slice(-1); // ["ه"] // Usecase: تم تمرير الاستخراج من الفهرس إلى ترك العنصرين الأخيرين. arr.slice(1,-2); // ["ه"] // حالة الاستخدام: قم بإنشاء نسخة سطحية من المصفوفة arr.slice(); // الطريقة الأولى [... آر]؛ // الطريقة الثانية

لصق: يحول المصفوفة الأصلية
// splice: remove the elements begining from the index passed. Mutates the orig. array.
// returns: part of the removed array
let arr = ['a','b','c','d','e'];
// arr.splice(2); // [ 'c', 'd', 'e' ]
// arr; // [ 'a', 'b' ]

// Usecase: Remove last element of the array
// arr.splice(-1); // [ 'e' ]
// arr; // [ 'a', 'b', 'c', 'd' ]

// Usecase: Delete no of elements. splice(index, deleteCount)
arr.splice(1, 3); // [ 'b', 'c', 'd' ]
arr; // [ 'a', 'e' ]
// لصق: إزالة العناصر التي تبدأ من الفهرس الذي تم تمريره. يتحول الأصل. صفيف. // يُرجع: جزء من المصفوفة التي تمت إزالتها Let arr = ['a','b','c','d','e']; // arr.splice(2); // ['ج'، 'د'، 'ه' ] // آر؛ // ['أ'، 'ب' ] // حالة الاستخدام: إزالة العنصر الأخير من المصفوفة // arr.splice(-1); // ["ه"] // آر؛ //

// حالة الاستخدام: حذف أي من العناصر. لصق (الفهرس، ديليتكونت) arr.splice(1, 3); // ['ب'، 'ج'، 'د' ] وصول؛ //


العكسي: يغير المصفوفة الأصلية.

let arr = ['a','b','c','d','e'];
let arr2 = arr.reverse();
arr;
arr2;

let arr = ['a','b','c','d','e']; دع arr2 = arr.reverse(); وصول؛ arr2;


concat: ينضم إلى صفيفين.

let arr1 = ['a','b','c','d','e'];
let arr2 = ['f','g','h','i','j'];

[...arr1, ...arr2];       // 1st way
arr2 = arr1.concat(arr2); // 2nd way

let arr1 = ['a','b','c','d','e']; Let arr2 = ['f','g','h','i','j']; [...arr1، ...arr2]؛ // الطريقة الأولى arr2 = arr1.concat(arr2); // الطريقة الثانية


الانضمام: ينضم إلى صفيفين.

let arr1 = ['a','b','c','d','e'];
let arr2 = ['f','g','h','i','j'];

[...arr1, ...arr2];       // 1st way
arr2 = arr1.concat(arr2); // 2nd way

let arr1 = ['a','b','c','d','e']; Let arr2 = ['f','g','h','i','j']; const x = arr1.concat(arr2); x.join('-'); // "أ-ب-ج-د-ه-ز-ح-ي-ي"

"مع مرور الوقت، سوف تتذكرها بناءً على استخدامها."


عند: يبدأ العد من النهاية، بدءًا من الفهرس كـ -1

let arr = ['a','b','c','d','e'];

arr[0];    // 1st way
arr.at(0); // 2nd way

// Get the last element of the array
arr[arr.length - 1];  // 1st way
arr.slice(-1)[0];     // 2nd way
arr.at(-1);           // 3rd way

arr.at(0); // 'a'
arr.at(-1); // 'e'


let arr = ['a','b','c','d','e']; آر[0]; // الطريقة الأولى arr.at(0); // الطريقة الثانية // احصل على العنصر الأخير من المصفوفة arr[arr.length - 1]; // الطريقة الأولى arr.slice(-1)[0]; // الطريقة الثانية arr.at(-1); // الطريقة الثالثة arr.at(0); // "أ" arr.at(-1); // 'ه'

// Looping over array using forEach method.
let account = [2000,-300, 400, -200, -500,  1000, -300];

// Loop over an array using for-of
for(let money of account){
  if(money > 0){
    console.log(`Deposited ${money}`);
  } else {
    console.log(`Withdrawn ${Math.abs(money)}`);
  }
}

// .entries(): returns an array of arrays.
// return the output as index-value pair.
// first element must be index, second element must be element-value
for(let [i,money] of account.entries()){
  if(money > 0){
    console.log(`Transaction ${i 1}, Deposited ${money}`);
  } else {
    console.log(`Transaction ${i 1}, Withdrawn ${Math.abs(money)}`);
  }
}

// Loop over an array using forEach which requires a callback fn.
// forEach will call the callback fn, and not we.
// forEach will pass each element as argument in every iteration.
account.forEach(function(money){
  if(money > 0){
    console.log(`Deposited ${money}`);
  } else {
    console.log(`Withdrawn ${Math.abs(money)}`);
  }
});
// Iteration 1: pass arg1 to CB-fn(arg1)
// Iteration 2: pass arg2 to CB-fn(arg2)
// Iteration 3: pass arg3 to CB-fn(arg3)
// .....
// .....


// forEach will pass each element, index, array as argument in every iteration. Order of arguments matter, not the no of these arguments i.e first element should be the current-Element, second element should be index, third element should be entire array which is being looped-over.
// first element must be element-value, second element should be index, third element must be entire array. This is how its different from array.entries()
account.forEach(function(money, i, arr){
  if(money > 0){
    console.log(`Transaction ${i 1}, Deposited ${money} into ${arr}`);
  } else {
    console.log(`Transaction ${i 1}, Withdrawn ${Math.abs(money)} from ${arr}`);
  }
});

// التكرار على المصفوفة باستخدام طريقة forEach. دعونا نحسب = [2000،-300، 400، -200، -500، 1000، -300]؛ // قم بالتكرار فوق المصفوفة باستخدام for-of ل(ترك المال في الحساب){ إذا (المال > 0){ console.log(`تم إيداع ${money}`); } آخر { console.log(`سحب ${Math.abs(money)}`); } } // .entries(): يُرجع مصفوفة من المصفوفات. // قم بإرجاع الإخراج كزوج قيمة الفهرس. // يجب أن يكون العنصر الأول فهرسًا، ويجب أن يكون العنصر الثاني قيمة العنصر for(دع [i,money] من account.entries()){ إذا (المال > 0){ console.log("المعاملة ${i 1}, تم الإيداع ${money}`); } آخر { console.log(`المعاملة ${i 1}, تم السحب ${Math.abs(money)}`); } } // قم بإجراء حلقة فوق مصفوفة باستخدام forEach الذي يتطلب رد اتصال fn. // forEach سوف يستدعي رد الاتصال fn، وليس نحن. // forEach سوف يمرر كل عنصر كوسيطة في كل تكرار. account.forEach(وظيفة(المال){ إذا (المال > 0){ console.log(`تم إيداع ${money}`); } آخر { console.log(`سحب ${Math.abs(money)}`); } }); // التكرار 1: تمرير arg1 إلى CB-fn(arg1) // التكرار 2: تمرير arg2 إلى CB-fn(arg2) // التكرار 3: تمرير arg3 إلى CB-fn(arg3) // ..... // ..... // forEach سوف يمرر كل عنصر وفهرس ومصفوفة كوسيطة في كل تكرار. ترتيب الوسائط مهم، وليس عدد هذه الوسائط، أي أن العنصر الأول يجب أن يكون العنصر الحالي، والعنصر الثاني يجب أن يكون الفهرس، والعنصر الثالث يجب أن يكون المصفوفة بأكملها التي يتم تكرارها. // يجب أن يكون العنصر الأول ذو قيمة عنصر، ويجب أن يكون العنصر الثاني فهرسًا، ويجب أن يكون العنصر الثالث مصفوفة كاملة. هذه هي الطريقة التي تختلف بها عن array.entries() account.forEach(function(money, i, arr){ إذا (المال > 0){ console.log(`المعاملة ${i 1}، تم إيداع ${money} في ${arr}`); } آخر { console.log(`المعاملة ${i 1}, تم السحب ${Math.abs(money)} من ${arr}`); } });


متى تستخدم for-of & forEach:

forEach: لا يمكن الخروج منه. استمرار الكسر لا يعمل بداخله. سوف يتكرر دائمًا على المصفوفة بأكملها، ولا يمكن فعل أي شيء لإيقافه.

for-of: يُستخدم عندما نحتاج إلى الخروج من المصفوفة. "كلما تدربت أكثر فأكثر، ستتحسن مهاراتك."

Array

بيان الافراج تم نشر هذه المقالة على: https://dev.to/mahf001/array-2jmn?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3