91 lines
3.0 KiB
Markdown
91 lines
3.0 KiB
Markdown
---
|
|
title: Array Destructuring
|
|
localeTitle: Dray
|
|
---
|
|
# Dray
|
|
|
|
تعتبر عملية التصفية طريقة ملائمة لاستخلاص قيم متعددة من البيانات المخزنة في المصفوفات. يمكن استخدامه في المواقع التي تتلقى البيانات (مثل الجانب الأيسر من الواجب). يتم تقديم هذه الميزة في `ECMAScript 6` .
|
|
|
|
يتم تحديد كيفية استخراج القيم عبر الأنماط (اقرأ على سبيل المثال).
|
|
|
|
### الواجب الأساسي المتغير
|
|
|
|
`var names = ['neel', 'meet', 'darshan'];
|
|
var [nameOne, nameTwo, nameThree] = names;
|
|
console.log(nameOne); // "neel"
|
|
console.log(nameTwo); // "meet"
|
|
console.log(nameThree); // "darshan"
|
|
`
|
|
|
|
### مهمة منفصلة عن الإعلان
|
|
|
|
يمكن تعيين متغير قيمته من خلال التدمير المنفصل عن تعريف المتغير.
|
|
|
|
`var a, b;
|
|
|
|
[a, b] = [1, 2];
|
|
console.log(a); // 1
|
|
console.log(b); // 2
|
|
`
|
|
|
|
### قيم افتراضية
|
|
|
|
يمكن تعيين متغير افتراضي ، في حالة أن القيمة unpacked من الصفيف غير `undefined` .
|
|
|
|
`var a, b;
|
|
|
|
[a=5, b=7] = [1];
|
|
console.log(a); // 1
|
|
console.log(b); // 7
|
|
`
|
|
|
|
### تحليل مجموعة من عاد من وظيفة
|
|
|
|
كان من الممكن دائمًا إرجاع صفيف من إحدى الوظائف. يمكن أن تجعل عملية التدمير العمل مع قيمة إرجاع صفيف أكثر إيجازًا.
|
|
|
|
في هذا المثال ، تقوم `getNames()` بارجاع القيم `['neel', 'meet']` `getNames()` لها ، والتي يمكن تحليلها في سطر واحد مع destructuring.
|
|
|
|
`function getNames() {
|
|
return ['neel', 'meet'];
|
|
}
|
|
|
|
var neel, meet;
|
|
[nameOne, nameTwo] = getNames();
|
|
console.log(nameOne); // neel
|
|
console.log(nameTwo); // meet
|
|
`
|
|
|
|
### تجاهل بعض القيم التي تم إرجاعها
|
|
|
|
يمكنك تجاهل قيم الإرجاع التي لا تهتم بها:
|
|
|
|
`function getNames() {
|
|
return ['neel', 'meet', 'darshan'];
|
|
}
|
|
|
|
var [nameOne, , nameThree] = getNames();
|
|
console.log(nameOne); // neel
|
|
console.log(nameThree); // darshan
|
|
`
|
|
|
|
يمكنك أيضًا تجاهل جميع القيم التي تم إرجاعها:
|
|
|
|
`[,,] = getNames();
|
|
`
|
|
|
|
### تعيين بقية صفيف إلى متغير
|
|
|
|
عند تدمير صفيف ، يمكنك فك وتعيين الجزء المتبقي منه إلى متغير باستخدام نمط الباقي:
|
|
|
|
`var [a, ...b] = [1, 2, 3];
|
|
console.log(a); // 1
|
|
console.log(b); // [2, 3]
|
|
`
|
|
|
|
لاحظ أنه سيتم طرح `SyntaxError` إذا تم استخدام فاصلة زائدة على الجانب الأيسر مع عنصر راحة:
|
|
|
|
`var [a, ...b,] = [1, 2, 3];
|
|
// SyntaxError: rest element may not have a trailing comma
|
|
`
|
|
|
|
انظر أيضا: **صفيف Destructuring** | [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Array_destructuring) |