ØªØ³Ù Ø Ù٠اÙÙØ§Ø¦Ùات بتخزÙÙ Ù Ø¬Ù ÙØ¹Ù ٠٠اÙÙ ÙØ§ØªÙØ Ø°Ø§Øª ÙÙÙ .اÙÙ Ø§ÙØ§Ù ÙØ°Ø§ Ø¬ÙØ¯ .
ÙÙÙÙ ÙÙ ÙØ«Ùر Ù Ù Ø§ÙØ£ØÙØ§Ù ÙØ¬Ø¯ Ø£ÙÙØ§ Ø¨ØØ§Ø¬Ø© Ø¥ÙÙ Ù Ø¬Ù ÙØ¹Ø© ٠رتبة, ØÙØ« ÙØ¯ÙÙØ§ Ø¹ÙØµØ± Ø§ÙØ£ÙÙ ÙØ§ÙثاÙÙ ÙØ§ÙØ«Ø§ÙØ« Ù٠ا Ø¥Ù٠ذÙÙ. عÙ٠سبÙ٠اÙ٠ثاÙ, ÙØÙ ÙØØªØ§Ø¬ اÙ٠تخزÙÙ Ù Ø¬Ù ÙØ¹Ù Ù Ù Ø§ÙØ´Ùاء: ٠سخد٠ÙÙ, بضائع, Ø¹ÙØ§ØµØ± HTML Ø§ÙØ®.
ÙÙØ³ ٠٠اÙÙ ÙØ§Ø³Ø¨ Ø§Ù ÙØ³ØªØ®Ø¯Ù ÙØ§Ø¦Ù ÙÙØ§, ÙØ§ÙÙ ÙØ§Ù٠تÙÙ Ø§Ù ÙØ³Ø§Ø¦Ù Ø§Ù Ø·Ø±Ù ÙØªØ±ØªÙب Ø§ÙØ¹Ùاصر. ÙØ§ÙÙ ÙÙØ§ ادراج خاصÙÙ Ø¬Ø¯ÙØ¯Ù âØ¨ÙÙâ Ø§ÙÙ ÙØ¬Ùد٠باÙÙØ¹Ù. اÙÙØ§Ø¦Ùات ÙÙØ³Øª ٠عد٠ÙÙØ°Ø§ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù ÙÙØ·.
ÙÙØ¬Ø¯ ÙÙÙÙ Ø¨ÙØ§Ùات خاص ÙØ³Ù
Ù Array, ÙØªØ®Ø²Ù٠اÙÙ
جÙ
ÙØ¹Ø§Øª اÙÙ
رتبÙ.
Ø§ÙØ§Ø¹ÙاÙ
ÙÙØ§Ù طرÙÙØªÙÙ ÙØ¥Ùشاء ٠صÙÙÙÙ ÙØ§Ø±ØºÙ:
let arr = new Array();
let arr = [];
ÙÙ Ø¬Ù ÙØ¹ Ø§ÙØ£ÙÙØ§Øª ØªÙØ±ÙØ¨ÙØ§ Ø ÙØªÙ Ø§Ø³ØªØ®Ø¯Ø§Ù Ø¨ÙØ§Ø¡ Ø§ÙØ¬Ù ÙØ© Ø§ÙØ«Ø§ÙÙ. ÙÙ ÙÙÙØ§ تÙÙÙØ± Ø§ÙØ¹Ùاصر Ø§ÙØ£ÙÙÙØ© ÙÙ Ø§ÙØ£ÙÙØ§Ø³:
let fruits = ["Ø§ÙØ¨Ø±ÙÙÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
ÙØªÙ ترÙÙÙ Ø¹ÙØ§ØµØ± اÙ٠صÙÙÙÙ Ø Ø¨Ø¯Ø¡ÙØ§ Ù Ù ØµÙØ±. ÙÙ ÙÙÙØ§ Ø§ÙØØµÙ٠عÙÙ Ø¹ÙØµØ± Ù Ù Ø®ÙØ§Ù Ø§ÙØªØ±ÙÙ٠بÙÙ ÙÙØ³Ù٠٠عÙÙÙÙÙ:
let fruits = ["Ø§ÙØ¨Ø±ÙÙÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
alert( fruits[0] ); // Ø§ÙØªÙاØ
alert( fruits[1] ); // Ø§ÙØ¨Ø±ØªÙاÙ
alert( fruits[2] ); // Ø§ÙØ¨Ø±ÙÙÙ
ÙÙ ÙÙÙØ§ Ø§Ø³ØªØ¨Ø¯Ø§Ù Ø¹ÙØµØ±:
fruits[2] = 'اÙÙÙ
ثرÙ'; // Ø§ÙØ¢Ù ["Ø§ÙØªÙاØ", "Ø§ÙØ¨Ø±ØªÙاÙ", "اÙÙÙ
ثرÙ"]
â¦Ø§Ù Ø§Ø¶Ù ÙØ§ØØ¯ Ø¬Ø¯ÙØ¯ اÙ٠اÙ٠صÙÙÙÙ :
fruits[3] = 'اÙÙÙÙ
ÙÙ'; // Ø§ÙØ¢Ù ["اÙÙÙÙ
ÙÙ", "اÙÙÙ
ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"]
Ø§ÙØ¹Ø¯Ø¯ Ø§ÙØ¥Ø¬Ù
اÙÙ ÙÙØ¹Ùاصر Ù٠اÙÙ
صÙÙÙÙ ÙÙ length:
let fruits = ["Ø§ÙØ¨Ø±ÙÙÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
alert( fruits.length ); // 3
ÙÙ
ÙÙ Ø§Ù ÙØ³ØªØ®Ø¯Ù
alert ØØªÙ ÙØ¹Ø±Ø¶ اÙÙ
صÙÙÙÙ ÙØ§Ù
ÙÙ.
let fruits = ["Ø§ÙØ¨Ø±ÙÙÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
alert( fruits ); // Ø§ÙØ¨Ø±ÙÙÙ,Ø§ÙØ¨Ø±ØªÙاÙ,Ø§ÙØªÙاØ
ÙÙ ÙÙ ÙÙ٠صÙÙÙÙ Ø§Ù ØªØ®Ø²Ù Ø¹ÙØ§ØµØ± Ù Ù Ø¬Ù ÙØ¹ Ø§ÙØ§ÙÙØ§Ø¹.
عÙ٠سبÙ٠اÙ٠ثاÙ:
// Ù
Ø²ÙØ¬ Ù
٠اÙÙÙÙ
let arr = [ 'Ø§ÙØªÙاØ', { name: 'جÙÙØ§Ù' }, true, function() { alert('اÙÙØ§'); } ];
// Ø§ØØµÙ عÙ٠اÙÙØ§Ø¦Ù Ù٠اÙÙÙØ±Ø³ 1 Ø«Ù
Ø¥Ø¸ÙØ§Ø± اسÙ
Ù
alert( arr[1].name ); // جÙÙØ§Ù
// Ø§ØØµÙ عÙ٠اÙÙØ§Ø¦Ù Ù٠اÙÙÙØ±Ø³ 3 Ø«Ù
Ø¥Ø¸ÙØ§Ø± اسÙ
Ù
arr[3](); // اÙÙØ§
اÙ٠صÙÙÙÙ Ø ØªÙ Ø§Ù ÙØ§ ٠ث٠اÙÙØ§Ø¦Ù Ø ÙØ¯ ØªÙØªÙÙ Ø¨ÙØ§ØµÙØ©:
let fruits = [
"Ø§ÙØªÙاØ",
"Ø§ÙØ¨Ø±ØªÙاÙ",
"Ø§ÙØ¨Ø±ÙÙÙ",
];
ÙØ³ÙÙÙ ÙÙ Ø· âØ§ÙÙØ§ØµÙØ© اÙÙØ§ØÙØ©â Ø¥Ø¯Ø±Ø§Ø¬ / Ø¥Ø²Ø§ÙØ© Ø§ÙØ¹Ùاصر Ø ÙØ£Ù Ø¬Ù ÙØ¹ Ø§ÙØ®Ø·ÙØ· Ù ØªØ´Ø§Ø¨ÙØ©.````
ÙØ³Ø§Ø¦Ù pop/push, shift/unshift
Ø§ÙØ·Ø§Ø¨Ùر ÙÙ Ø£ØØ¯ Ø§ÙØ§Ø³ØªØ®Ø¯Ø§Ù ات Ø§ÙØ£Ùثر Ø´ÙÙØ¹Ùا ÙÙ٠صÙÙÙØ©. Ù٠عÙÙÙ Ø§ÙØØ§Ø³Ø¨, ÙØ°Ø§ ÙØ¹ÙÙ Ù Ø¬Ù ÙØ¹Ø© ٠رتبة Ù Ù Ø§ÙØ¹Ùاصر Ø§ÙØªÙ تدع٠ع٠ÙÙØªÙÙ:
pushØ¥ÙØØ§Ù Ø¹ÙØµØ± Ø¥Ù٠اÙÙÙØ§ÙØ©.shiftØ§ØØµÙ عÙÙ Ø¹ÙØµØ± Ù Ù Ø§ÙØ¨Ø¯Ø§ÙØ© Ø Ø¨Ø¯ÙØ¹ ÙØ§Ø¦Ù Ø© Ø§ÙØ§Ùتظار Ø Ø¨ØÙØ« ÙØµØ¨Ø Ø§ÙØ¹Ùصر Ø§ÙØ«Ø§ÙÙ ÙÙ Ø§ÙØ£ÙÙ.
تدع٠اÙ٠صÙÙÙØ§Øª ÙÙØ§ Ù Ù Ø§ÙØ¹Ù ÙÙØªÙÙ. Ù٠اÙ٠٠ارسة Ø§ÙØ¹Ù ÙÙØ© ÙØÙ Ø¨ØØ§Ø¬Ø© Ø¥ÙÙÙØ§ ÙÙ ÙØ«Ùر Ù Ù Ø§ÙØ£ØÙاÙ. عÙ٠سبÙ٠اÙ٠ثا٠ØÙ Ø¬Ù ÙØ¹Ù Ø§ÙØ±Ø³Ø§Ø¦Ù Ø§ÙØªÙ ÙØ¬Ø¨ Ø¹Ø±Ø¶ÙØ§ عÙÙ Ø§ÙØ´Ø§Ø´Ø©. ÙÙØ§Ù ØØ§ÙØ© استخدا٠أخر٠ÙÙ٠صÙÙÙØ§Øª â ÙÙÙÙ Ø§ÙØ¨ÙØ§ÙØ§Øª ÙØ³Ù Ù stack.
ÙØ¯Ø¹Ù ع٠ÙÙØªÙÙ:
pushÙØ¶ÙÙ Ø¹ÙØµØ±Ùا Ø¥Ù٠اÙÙÙØ§ÙØ©.popÙØ£Ø®Ø° Ø¹ÙØµØ± ٠٠اÙÙÙØ§ÙØ©.
ÙØ°ÙÙ ÙØªÙ Ø¥Ø¶Ø§ÙØ© Ø¹ÙØ§ØµØ± Ø¬Ø¯ÙØ¯Ø© Ø£Ù Ø£Ø®Ø°ÙØ§ Ø¯Ø§Ø¦Ù ÙØ§ Ù Ù âØ§ÙÙÙØ§ÙÙâ.
اÙÙÙÙ Ù(stack) عادة ٠ا ÙØªÙ ØªÙØ¶ÙØÙا ÙØØ²Ù Ø© Ù Ù Ø§ÙØ¨Ø·Ø§Ùات: ØªØªÙ Ø¥Ø¶Ø§ÙØ© Ø¨Ø·Ø§ÙØ§Øª Ø¬Ø¯ÙØ¯Ø© Ø¥ÙÙ Ø§ÙØ£Ø¹ÙÙ Ø£Ù Ù Ø£Ø®ÙØ°Ø© Ù Ù Ø§ÙØ£Ø¹ÙÙ:
باÙÙØ³Ø¨Ù ÙÙÙÙÙ Ù(stacks), ÙØªÙ Ø§Ø³ØªÙØ§Ù Ø£ØØ¯Ø« Ø¹ÙØµØ± ٠دÙÙØ¹ Ø£ÙÙØ§Ù Ø ÙÙØ°Ø§ ٠ا ÙØ³Ù ٠ب٠بدأ LIFO (Last-In-First-Out). باÙÙØ³Ø¨Ø© ÙÙÙØ§Ø¦Ù Ø§ÙØ§Ùتظار Ø ÙØ¯ÙÙØ§ FIFO (First-In-First-Out).
ÙÙ Ù٠أ٠تع٠٠اÙ٠صÙÙÙØ§Øª ÙÙ JavaScript ÙÙØ§Ø¦Ù Ø© Ø§ÙØªØ¸Ø§Ø± ÙÙÙ Ø¬Ù ÙØ¹Ø©(stack). ØªØªÙØ ÙÙ Ø¥Ø¶Ø§ÙØ© / Ø¥Ø²Ø§ÙØ© Ø¹ÙØ§ØµØ± Ù Ù / Ø¥ÙÙ Ø§ÙØ¨Ø¯Ø§ÙØ© أ٠اÙÙÙØ§ÙØ©.
Ù٠عÙÙ Ø§ÙØØ§Ø³ÙØ¨ ÙØ³Ù Ù ÙÙÙÙ Ø§ÙØ¨ÙØ§ÙØ§Øª Ø§ÙØ°Ù ÙØ³Ù Ø Ø¨Ø°ÙÙ deque.
Ø§ÙØ£Ø³Ø§ÙÙØ¨ Ø§ÙØªÙ تع٠٠٠ع ÙÙØ§ÙØ© اÙ٠صÙÙÙÙ:
pop
:تعÙ
٠عÙ٠استخراج Ø§ÙØ¹Ùصر Ø§ÙØ£Ø®Ùر Ù
٠اÙÙ
صÙÙÙØ© ÙØªØ¹Ùد٠:
```js run
;["اÙÙÙ
ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"] = let fruits
;alert( fruits.pop() ) // ÙÙ
بإزاÙÙ "اÙÙÙ
ثرÙ" ÙÙÙ
Ø¨Ø§ÙØ¹Ø±Ø¶ ÙÙ ØªÙØ¨ÙÙ
;alert( fruits ) // Ø§ÙØ¨Ø±ØªÙاÙ, Ø§ÙØªÙاØ
```
push-
Ø£ÙØÙ Ø§ÙØ¹Ùصر بÙÙØ§ÙØ© اÙ٠صÙÙÙØ©:
let fruits = ["Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"]; fruits.push("اÙÙ٠ثرÙ"); alert( fruits ); // اÙÙ٠ثرÙ, Ø§ÙØ¨Ø±ØªÙاÙ, Ø§ÙØªÙØ§ØØªÙÙÙØ° ÙØ°Ø§ اÙÙÙØ¯ Ø§ÙØ§ØªÙ
(...)fruits.pushÙØ³Ø§Ù٠ت٠ا٠اfruits[fruits.length] = ....
Ø§ÙØ£Ø³Ø§ÙÙØ¨ Ø§ÙØªÙ تع٠٠٠ع بداÙ٠اÙ٠صÙÙÙÙ:
shift-
تع٠٠عÙ٠استخراج Ø§ÙØ¹Ùصر Ø§ÙØ§Ù٠٠٠اÙ٠صÙÙÙØ© ÙØªØ¹ÙدÙ:
let fruits = ["اÙÙ٠ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"]; alert( fruits.shift() ); // Ù٠بإزاÙÙ Ø§ÙØªÙØ§Ø ÙÙÙ Ø¨Ø§ÙØ¹Ø±Ø¶ ÙÙ ØªÙØ¨ÙÙ alert( fruits ); // اÙÙ٠ثرÙ, Ø§ÙØ¨Ø±ØªÙا٠unshift-
إضاÙÙ Ø§ÙØ¹Ùصر Ù٠بداÙ٠اÙ٠صÙÙÙÙ:
let fruits = ["اÙÙ٠ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ"]; fruits.unshift('Ø§ÙØªÙاØ'); alert( fruits ); // اÙÙ٠ثرÙ, Ø§ÙØ¨Ø±ØªÙاÙ, Ø§ÙØªÙاØ
اÙÙØ³Ø§Ø¦Ù push Ù unshift ÙÙ
ÙÙÙÙ
Ø¥Ø¶Ø§ÙØ© Ø¹ÙØ§ØµØ± Ù
تعددة ÙÙ ÙÙØª ÙØ§ØØ¯:
let fruits = ["Ø§ÙØªÙاØ"];
fruits.push("Ø®ÙØ®", "Ø§ÙØ¨Ø±ØªÙاÙ");
fruits.unshift("اÙÙÙÙ
ÙÙ", "Ø£ÙØ§Ùاس");
// ["Ø§ÙØ®ÙØ®", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ", "اÙÙÙÙ
ÙÙ", "Ø£ÙØ§Ùاس"]
alert( fruits );
Ø§ÙØ¨ÙÙÙ Ø§ÙØ¯Ø§Ø®ÙÙÙ ÙÙ٠صÙÙÙÙ
اÙÙ
صÙÙÙÙ ÙÙ ÙÙØ¹ خاص Ù
٠اÙÙØ§Ø¦Ù. Ø§ÙØ£ÙÙØ§Ø³ اÙÙ
ربعة تستخدÙ
ÙÙØªØÙÙ
ÙÙ Ø§ÙØ®Ø§ØµÙÙ arr[0] Ù٠اÙÙØ§Ùع تأت٠Ù
Ù Ø¨ÙØ§Ø¡ اÙÙØ§Ø¦Ù. ÙØ°Ø§ ÙÙ Ø§ÙØ§Ø³Ø§Ø³ ÙÙØ³ obj[key], Ø¹ÙØ¯Ù
ا تÙÙÙ arr ÙØ§Ø¦Ù, بÙÙÙ
ا Ø§ÙØ§Ø±ÙاÙ
تستخدÙ
ÙÙ
ÙØ§ØªÙØ.
Remember, there are only eight basic data types in JavaScript (see the Data types chapter for more info). Array is an object and thus behaves like an object.
عÙ٠سبÙ٠اÙ٠ثاÙ, ÙØªÙ ÙØ³Ø®Ù ØØ³Ø¨ اÙ٠رجع:
let fruits = ["اÙÙ
ÙØ²"]
let arr = fruits; // ÙØ³Ø® ع٠طرÙ٠اÙÙ
رجع (Ù
ØªØºÙØ±Ø§Ù ÙØ´Ùرا٠إÙÙ ÙÙØ³ اÙÙ
صÙÙÙØ©)
alert( arr === fruits ); // صØÙØ
arr.push("اÙÙÙ
ثرÙ"); // تعدÙ٠اÙÙ
صÙÙÙÙ ØØ³Ø¨ اÙÙ
رجع
alert( fruits ); // اÙÙ
ÙØ² Ø Ø§ÙÙÙ
ثر٠- 2 Ù
Ù Ø§ÙØ¹Ùاصر Ø§ÙØ¢Ù
â¦But what makes arrays really special is their internal representation. The engine tries to store its elements in the contiguous memory area, one after another, just as depicted on the illustrations in this chapter, and there are other optimizations as well, to make arrays work really fast.
ÙÙÙ Ø¬Ù ÙØ¹Ùا تÙÙØ³Ø± إذا تÙÙÙÙØ§ Ø¹Ù Ø§ÙØ¹Ù ٠٠ع ٠صÙÙÙØ© Ù٠ا ÙÙ Ø§ÙØØ§Ù Ù Ø¹ âÙ Ø¬Ù ÙØ¹Ø© ٠رتبةâ ÙØ¨Ø¯Ø£Ùا ÙÙ Ø§ÙØ¹Ù Ù Ù Ø¹ÙØ§ Ù٠ا ÙÙ ÙØ§Ùت ÙØ§Ø¦ÙÙØ§ عادÙÙØ§.
عÙ٠سبÙ٠اÙÙ Ø«Ø§Ù Ø Ù Ù Ø§ÙÙØ§ØÙØ© اÙÙÙÙØ© ÙÙ ÙÙÙØ§ اÙÙÙØ§Ù بذÙÙ:
let fruits = []; // Ø¥ÙØ´Ø§Ø¡ Ù
صÙÙÙÙ
fruits[99999] = 5; // ÙÙ
بتعÙÙÙ Ø§ÙØ®Ø§ØµÙÙ Ù
ع اÙÙÙØ±Ø³ Ø£ÙØ¨Ø± Ø¨ÙØ«Ùر Ù
Ù Ø·ÙÙÙ
fruits.age = 25; // Ø£ÙØ´Ø¦ Ø§ÙØ®Ø§ØµÙ٠باسÙ
Ø§ÙØªØ±Ø§Ø¶Ù
ÙØ°Ø§ Ù Ù ÙÙ Ø ÙØ£Ù اÙ٠صÙÙÙØ§Øª ÙÙ ÙØ§Ø¦Ù ÙÙ Ø£Ø³Ø§Ø³ÙØ§. ÙÙ ÙÙÙØ§ Ø¥Ø¶Ø§ÙØ© أ٠خصائص ÙÙÙ .
ÙÙ٠اÙÙ ØØ±Ù Ø³ÙØ±Ù Ø£ÙÙØ§ ÙØ¹Ù ٠٠ع اÙ٠صÙÙÙÙ Ù٠ا ÙÙ Ø§ÙØØ§Ù Ù Ø¹ ÙØ§Ø¦Ù عادÙ. Ø§ÙØªØØ³ÙÙØ§Øª Ø§ÙØ®Ø§ØµØ© باÙ٠صÙÙÙÙ ØºÙØ± Ù ÙØ§Ø³Ø¨Ø© ÙÙ Ø«Ù ÙØ°Ù Ø§ÙØØ§ÙØ§Øª ÙØ³Ùت٠إÙÙØ§ÙÙØ§ Ø ÙØªØ®ØªÙÙ ÙÙØ§Ø¦Ø¯Ùا.
طر٠إساءة استخدا٠٠صÙÙÙØ©:
- Ø£Ø¶Ù Ø®Ø§ØµÙØ© ØºÙØ± رÙÙ
ÙØ© Ù
Ø«Ù
arr.test = 5. - Ø§ØµÙØ¹ ÙØ±Ø§Øº, Ù
Ø«Ù: إضاÙÙ
arr[0]ÙØ«Ùarr[1000](ÙÙØ§ Ø´ÙØ¡ بÙÙÙ٠ا). - اÙ
ÙØ£ اÙÙ
صÙÙÙØ© Ø¨Ø§ÙØªØ±ØªÙب Ø§ÙØ¹ÙسÙ, Ù
Ø«Ù
arr[1000],arr[999]Ù٠ا Ø¥Ù٠ذاÙÙ.
ÙØ±Ø¬Ù Ø§ÙØªÙÙÙØ± Ù٠اÙÙ
صÙÙÙØ§Øª ÙØ¨Ù٠خاصة ÙÙØ¹Ù
Ù Ù
ع * Ø§ÙØ¨ÙØ§ÙØ§Øª اÙÙ
Ø·ÙÙØ¨Ø© *. Ø£ÙÙØ§ تÙÙØ± أساÙÙØ¨ خاصة ÙØ°ÙÙ.ÙØªÙ
ضبط اÙÙ
صÙÙÙØ§Øª Ø¨Ø¹ÙØ§Ùةداخ٠Ù
ØØ±Ùات JavaScript ÙÙØ¹Ù
Ù Ù
ع Ø§ÙØ¨ÙØ§ÙØ§Øª اÙÙ
رتبة اÙÙ
ØªØ¬Ø§ÙØ±Ø© Ø ÙØ±Ø¬Ù استخداÙ
ÙØ§ Ø¨ÙØ°Ù Ø§ÙØ·Ø±ÙÙØ©. ÙØ¥Ø°Ø§ ÙÙØª Ø¨ØØ§Ø¬Ø© Ø¥ÙÙ Ù
ÙØ§ØªÙØ Ø¹Ø´ÙØ§Ø¦ÙØ© ØÙÙØ§Ù Ø§ØØªÙ
Ø§ÙØ§Øª عاÙÙØ© بأÙÙ ØªØØªØ§Ø¬ باÙÙØ¹Ù Ø¥ÙÙ ÙØ§Ø¦Ù عاد٠{}.
Ø§ÙØ£Ø¯Ø§Ø¡
اÙÙØ³Ø§Ø¦Ù push/pop ÙØªÙ
تÙÙÙØ°Ùا أسرع, بÙÙÙ
ا shift/unshift تÙÙ٠أبطئ.
Ù٠اذا ÙÙÙÙ Ø§ÙØ¹Ù ٠٠ع ÙÙØ§ÙØ© اÙ٠صÙÙÙØ© أسرع Ù Ù Ø¨Ø¯Ø§ÙØªÙØ Ø¯Ø¹ÙÙØ§ ÙØ±Ù ٠ا ÙØØ¯Ø« Ø£Ø«ÙØ§Ø¡ Ø§ÙØªÙÙÙØ°:
fruits.shift(); // ÙÙ
بأخذ Ø¹ÙØµØ± Ù
Ù Ø§ÙØ¨Ø¯Ø§ÙÙ
ÙØ§ ÙÙÙ٠أخذ Ø§ÙØ¹Ùصر ÙØ¥Ø²Ø§ÙØªÙ Ø¨Ø§ÙØ±ÙÙ
0.ÙØ¬Ø¨ إعادة ترÙÙÙ
Ø§ÙØ¹Ùاصر Ø§ÙØ£Ø®Ø±Ù Ø£ÙØ¶Ùا.
shift ÙØ°Ù Ø§ÙØ¹Ù
ÙÙÙ ÙØ¬Ø¨ Ø§Ù ØªÙØ¹Ù 3 Ø£Ø´ÙØ§Ø¡:
- Ø¥Ø²Ø§ÙØ© Ø§ÙØ¹Ùصر باستخداÙ
اÙÙÙØ±Ø³
0. - اÙÙÙ ÙÙ Ø§ÙØ¹Ùاصر Ø¥Ù٠اÙÙØ³Ø§Ø±, ترÙÙÙ
ÙØ§ Ù
٠اÙÙÙØ±Ø³
1اÙÙ0, Ù Ù2اÙÙ1Ù٠ا اÙ٠ذاÙÙ. - ÙÙ
Ø¨ØªØØ¯ÙØ« خاصÙÙ
length.
Ù Ø²ÙØ¯ Ù Ù Ø§ÙØ¹Ùاصر Ù٠اÙ٠صÙÙÙÙ, Ù Ø²ÙØ¯ ٠٠اÙÙÙØª ÙØªØØ±ÙÙÙØ§, اÙÙ Ø²ÙØ¯ Ù Ù Ø§ÙØ¹Ù ÙÙØ§Øª ÙÙ Ø§ÙØ°Ø§Ùرة.
ÙÙØ³ Ø§ÙØ´Ø¦ ÙØØ¯Ø« Ù
ع unshift: ØØªÙ تضÙÙ Ø¹ÙØµØ± Ù٠بداÙ٠اÙÙ
صÙÙÙÙ, ÙØØªØ§Ø¬ Ø£ÙÙØ§Ù Ø¥ÙÙ ÙÙÙ Ø§ÙØ¹Ùاصر اÙÙ
ÙØ¬Ùدة Ø¥Ù٠اÙÙÙ
ÙÙ, Ø²ÙØ§Ø¯Ù ترÙÙÙ
ÙÙ
ÙØ¯Ù اÙÙÙØ±Ø³.
ÙÙ
اذا Ù
ع اÙÙØ³Ø§Ø¦Ù push/pop? ÙØ§ ÙØØªØ§Ø¬ÙÙ ÙØªØØ±ÙÙ Ø£Ù Ø´ÙØ¡. ØØªÙ ØªØ³ØªØ®ÙØµ Ø¹ÙØµØ± Ù
٠اÙÙÙØ§ÙÙ, pop ÙØ°Ù اÙÙØ³ÙÙ٠تÙ
Ø³Ø Ø§ÙÙÙØ±Ø³ ÙØªÙÙÙ Ù
Ù Ø§ÙØ·ÙÙ length.
pop Ø§ÙØ¥Ø¬Ø±Ø§Ø¡Øª Ø§ÙØªØ´ØºÙÙÙ ÙÙØ°Ù اÙÙØ³ÙÙÙ:
fruits.pop(); // تأخذ Ø¹ÙØµØ± ÙØ§ØØ¯ Ù
٠اÙÙÙØ§ÙÙ
** pop ÙØ§ØªØØªØ§Ø¬ ÙØ°Ù اÙÙØ³ÙÙ٠اÙÙ ÙÙ٠أ٠شئ, ÙØ§Ù Ø§ÙØ¹Ùاصر Ø§ÙØ§Ø®Ø±Ù ØªØØªÙظ بÙÙØ§Ø±Ø³Ùا. ÙØ°Ø§ ÙÙ Ø§ÙØ³Ø¨Ø¨ Ù٠أÙÙØ§ Ø³Ø±ÙØ¹Ù ÙÙØºØ§ÙÙ.**
ÙÙØ³ Ø§ÙØ´Ø¦ ÙØØ¯Ø« Ù
ع اÙÙØ³ÙÙÙpush .
Ø§ÙØÙÙØ§Øª Ø§ÙØªÙرارÙÙ
ÙØ§ØØ¯Ù Ù
Ù Ø§ÙØ¯Ù
Ø§ÙØ·Ø±Ù ÙØªÙرار ÙØ³ØªØ®Ø¯Ø§Ù
Ø¹ÙØ§ØµØ± اÙÙ
صÙÙÙÙ ÙÙ Ø§ÙØÙÙÙ for عبر اÙÙÙØ§Ø±Ø³:
let arr = ["اÙÙÙ
ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
for (let i = 0; i < arr.length; i++) {
alert( arr[i] );
}
ÙÙÙ٠باÙÙØ³Ø¨Ø© ÙÙÙ
صÙÙÙØ§Øª Ø ÙÙØ§Ù Ø´Ù٠آخر Ù
Ù Ø£Ø´ÙØ§Ù Ø§ÙØÙÙØ§Øª, for..of:
let fruits = ["Ø§ÙØ¨Ø±ÙÙÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
// ÙØªÙرر عبر Ø¹ÙØ§ØµØ± اÙÙ
صÙÙÙÙ
for (let fruit of fruits) {
alert( fruit );
}
The for..of ÙØ§ ÙÙ
ÙØ اÙÙØµÙ٠إÙ٠رÙÙ
Ø§ÙØ¹Ùصر Ø§ÙØØ§ÙÙ, ÙÙØ· ÙÙÙ
ت٠,ÙÙÙÙ ÙÙ Ù
عظÙ
Ø§ÙØØ§ÙØ§Øª ÙÙÙ٠ذÙÙ ÙØ§ÙÙÙØ§. ÙÙÙ Ø£ÙØµØ±.
Ù
٠اÙÙØ§ØÙØ© اÙÙÙÙØ© Ø ÙØ¸Ø±Ùا ÙØ£Ù اÙÙ
صÙÙÙØ§Øª ÙÙ ÙØ§Ø¦Ùات Ø ÙÙ
٠اÙÙ
Ù
ÙÙ Ø£ÙØ¶Ùا استخداÙ
ÙØ§ for..in:
let arr = ["اÙÙÙ
ثرÙ", "Ø§ÙØ¨Ø±ØªÙاÙ", "Ø§ÙØªÙاØ"];
for (let key in arr) {
alert( arr[key] ); // اÙÙÙ
ثرÙ, Ø§ÙØ¨Ø±ØªÙاÙ, Ø§ÙØªÙاØ
}
ÙÙÙ ÙØ°Ù Ù٠اÙÙØ§Ùع ÙÙØ±Ø© Ø³ÙØ¦Ø©. ÙÙØ§Ù ٠شاÙÙ Ù ØØªÙ ÙØ© Ù Ø¹ÙØ§:
-
ØªØªÙØ±Ø± Ø§ÙØÙÙØ©
for ... inعÙÙ * Ø¬Ù ÙØ¹ Ø§ÙØ®ØµØ§Ø¦Øµ * Ø ÙÙÙØ³ ÙÙØ· Ø§ÙØ®ØµØ§Ø¦Øµ Ø§ÙØ±ÙÙ ÙØ©.ÙÙØ§Ù ٠ا ÙØ³Ù Ù Ø¨ÙØ§Ø¦Ùات â٠ث٠اÙ٠صÙÙÙØ©â Ù٠اÙÙ ØªØµÙØ ÙÙÙ Ø¨ÙØ¦Ø§Øª أخرÙ, اÙÙØ§ ØªØ¨Ø¯ÙØ§ ٠ث٠اÙ٠صÙÙÙØ§Øª. Ø£Ù Ø ÙØ¯ÙÙÙ
lengthÙÙØ¯ÙÙ٠خصائص اÙÙÙØ±Ø³, ÙÙÙÙ ÙØ¯ ÙÙÙÙ ÙØ¯ÙÙÙ Ø£ÙØ¶Ùا خصائص ÙØ³Ø§Ø¦Ù ØºÙØ± رÙÙ ÙØ© أخرÙ, Ø§ÙØªÙ ÙØ§ ÙØØªØ§Ø¬ÙØ§ عادةÙ.for..inÙØ°Ù Ø§ÙØÙÙ٠سÙ٠ترتبÙÙ Ø¨Ø§ÙØ±ØºÙ ٠٠ذÙÙ. ÙØ°Ø§ إذا Ø§ØØªØ¬Ùا ÙÙØ¹Ù ٠٠ع ÙØ§Ø¦Ùات تشب٠اÙ٠صÙÙÙØ© Ø ÙÙØ¯ ØªØµØ¨Ø ÙØ°Ù Ø§ÙØ®ØµØ§Ø¦Øµ âØ§ÙØ¥Ø¶Ø§ÙÙØ©â Ù Ø´ÙÙØ©. -
ØªÙ ØªØØ³ÙÙ Ø§ÙØÙÙØ©
for..inÙÙØ¹Ùاصر Ø§ÙØ¹Ø§Ù Ø© Ø ÙÙÙØ³ ÙÙ٠صÙÙÙØ§Øª Ø ÙØ¨Ø§ÙتاÙÙ ÙÙ٠أبطأ Ø¨Ù ÙØ¯Ø§Ø± 10-100 ٠رة. Ø¨Ø§ÙØ·Ø¨Ø¹ Ø Ø¥ÙÙØ§ ÙØ§ ØªØ²Ø§Ù Ø³Ø±ÙØ¹Ø© Ø¬Ø¯ÙØ§. ÙØ¯ ÙÙÙÙ Ø§ÙØªØ³Ø±Ùع Ù ÙÙ ÙØ§ ÙÙØ· ÙÙ Ø§ÙØ§Ø®ØªÙØ§ÙØ§Øª. ÙÙÙÙ ÙØ§ ÙØ²Ø§Ù ÙØªØ¹Ù٠عÙÙÙØ§ Ø£Ù ÙØ¯Ø±Ù اÙÙØ±Ù.
بشÙÙ Ø¹Ø§Ù Ø ÙØ§ ÙØ¬Ø¨ استخدا٠âforâ¦inâ ÙÙ٠صÙÙÙØ§Øª.
ÙÙ٠٠ع٠âlengthâ
length ÙØªÙ
ØªØØ¯ÙØ« ÙØ°Ù Ø§ÙØ®Ø§ØµÙ٠تÙÙØ§Ø¦ÙÙØ§ Ø¹ÙØ¯Ù
ا ÙÙÙÙ
بتعدÙ٠اÙÙ
صÙÙÙÙ. عÙÙ ÙØ¬Ù Ø§ÙØ¯ÙØ© Ø Ù٠اÙÙØ§Ùع ÙÙ ÙÙØ³ عدد اÙÙÙÙ
Ù٠اÙÙ
صÙÙÙØ© Ø ÙÙÙÙÙ Ø£ÙØ¨Ø± Ù
Ù Ù
ؤشراÙÙÙØ±Ø³ Ø¨ÙØ§ØØ¯ صØÙØ.
عÙ٠سبÙ٠اÙÙ Ø«Ø§Ù Ø Ø¹ÙØµØ± ÙØ§ØØ¯ ب٠ؤشر ÙØ¨Ùر ÙØ¹Ø·Ù Ø·ÙÙÙØ§ ÙØ¨ÙØ±ÙØ§:
let fruits = [];
fruits[123] = "Ø§ÙØªÙاØ";
alert( fruits.length ); // 124
ÙØ§ØØ¸ Ø£ÙÙØ§ عادة ÙØ§ ÙØ³ØªØ®Ø¯Ù ٠صÙÙÙØ§Øª Ù Ù ÙØ°Ø§ اÙÙØ¨ÙÙ.
Ø´ÙØ¡ آخر Ù
Ø«ÙØ± ÙÙØ§ÙتÙ
اÙ
ØÙÙ Ø®Ø§ØµÙØ© length Ù٠أÙÙ ÙØ§Ø¨Ù ÙÙÙØªØ§Ø¨Ø©.
إذا ØªÙ ØªØ²ÙØ¯ÙÙØ§ ÙØ¯ÙÙÙØ§ Ø ÙÙÙ ÙØØ¯Ø« Ø´ÙØ¡ Ù Ø«ÙØ± ÙÙØ§Ùت٠ا٠. ÙÙÙ٠إذا ÙÙÙÙØ§Ù Ø ÙØ³ÙØªÙ Ø§ÙØªØ·Ø§Ø¹ اÙ٠صÙÙÙØ©. Ø§ÙØ¹Ù ÙÙØ© ÙØ§ رجعة ÙÙÙØ§ Ø ÙØ¥ÙÙ٠اÙ٠ثاÙ:
let arr = [1, 2, 3, 4, 5];
arr.length = 2; // ÙØªÙ
Ø§ÙØªØ·Ø§Ø¹Ùا Ø¥ÙÙ Ø¹ÙØµØ±ÙÙ
alert( arr ); // [1, 2]
arr.length = 5; // أعد ÙÙÙ
Ù Ø§ÙØ·ÙÙ
alert( arr[3] ); // ØºÙØ±Ù
عرÙ: ÙØ°Ø§Ù٠اÙÙÙÙ
Ù٠تعد
ÙØ°Ø§ Ø ÙØ¥Ù أبسط طرÙÙØ© ÙÙ
Ø³Ø Ø§ÙÙ
صÙÙÙÙ ÙÙ: ;arr.length = 0.
()new Array
ÙÙØ¬Ø¯ Ø§ÙØ«Ø± ٠٠طرÙÙÙ ÙØ¥Ùشاء ٠صÙÙÙÙ:
let arr = new Array("Ø§ÙØ®", "اÙÙÙ
ثرÙ", "Ø§ÙØªÙاØ");
ÙØ§Ø¯Ø±Ùا ٠ا ÙØªÙ Ø§Ø³ØªØ®Ø¯Ø§Ù Ù Ø ÙØ£Ù Ø§ÙØ£ÙÙØ§Ø³ اÙ٠ربعة `[] Ø£ÙØµØ±. Ø£ÙØ¶Ø§ ÙÙØ§Ù Ù ÙØ²Ø© صعبة Ù Ø¹ÙØ§.
إذا تÙ
استدعاء Ù
صÙÙÙÙ Ø¬Ø¯ÙØ¯Ù باستخداÙ
ÙØ³ÙÙÙ ÙØ§ØØ¯Ø© عبارة ع٠رÙÙ
Ø ÙØ¥ÙÙ ÙÙØ´Ø¦ Ù
صÙÙÙØ© * بدÙÙ Ø¹ÙØ§ØµØ± Ø ÙÙÙÙ Ø¨Ø§ÙØ·Ù٠اÙÙ
ØØ¯Ø¯ *.
دعÙÙØ§ ÙØ±Ù ÙÙÙ ÙÙ ÙÙ ÙÙ٠رء Ø£Ù ÙØ·Ù٠اÙÙØ§Ø± عÙÙ ÙØ¯Ù Ù:
let arr = new Array(2); //Ù٠سÙÙØ´Ø¦ Ù
صÙÙÙÙ Ù
ÙÙÙÙ Ù
Ù [2] ?
alert( arr[0] ); // ØºÙØ± Ù
عرÙ! ÙØ§ ØªÙØ¬Ø¯ Ø¹ÙØ§ØµØ±.
alert( arr.length ); // Ø§ÙØ·ÙÙ 2
Ù٠اÙÙÙØ¯ Ø£Ø¹ÙØ§Ù, Ù
صÙÙÙÙ Ø¬Ø¯ÙØ¯Ù(رÙÙ
) تÙÙÙ ÙØ¯ÙÙØ§ ÙÙ Ø§ÙØ¹Ùاصر ØºÙØ± Ù
عرÙÙ.
ÙÙØªÙرب Ù Ù ÙØ°Ù اÙÙ ÙØ§Ø¬Ø¢Øª Ø ÙØ³ØªØ®Ø¯Ù Ø¹Ø§Ø¯Ø©Ù Ø§ÙØ£ÙÙØ§Ø³ اÙ٠ربعة Ø Ø¥ÙØ§ إذا ÙÙØ§ ÙØ¹Ø±Ù ØÙÙØ§ ٠ا ÙÙÙ٠بÙ.
٠صÙÙÙØ§Øª Ù ØªØ¹Ø¯Ø¯Ù Ø§ÙØ£Ø¨Ø¹Ø§Ø¯
ÙÙ ÙÙ Ø£Ù ØªØØªÙ٠اÙ٠صÙÙÙØ§Øª عÙÙ Ø¹ÙØ§ØµØ± عبارة ع٠٠صÙÙÙØ§Øª Ø£ÙØ¶Ùا. ÙÙ ÙÙÙØ§ استخدا٠٠ÙÙ٠صÙÙÙØ§Øª ٠تعددة Ø§ÙØ£Ø¨Ø¹Ø§Ø¯ Ø Ø¹Ù٠سبÙ٠اÙÙ Ø«Ø§Ù ÙØªØ®Ø²Ù٠اÙ٠صÙÙÙØ§Øª:
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // 5, Ø§ÙØ¹Ùصر اÙÙ
Ø±ÙØ²Ù
Ø§ÙØªØÙÙ٠إÙÙ ÙØµ
اÙÙ
صÙÙÙØ§Øª ÙÙØ§ تÙÙÙØ°Ùا Ø§ÙØ®Ø§Øµ ÙØ·Ø±ÙÙØ© toString Ø§ÙØªÙ ØªÙØ±Ø¬Ø¹ ÙØ§Ø¦Ù
Ø© Ù
Ù Ø§ÙØ¹Ùاصر Ù
ÙØµÙÙØ© بÙÙØ§ØµÙ.
عÙ٠سبÙ٠اÙ٠ثاÙ:
let arr = [1, 2, 3];
alert( arr ); // 1,2,3
alert( String(arr) === '1,2,3' ); // صØÙØ
Ø£ÙØ¶Ø§ Ø Ø¯Ø¹ÙØ§ ÙØ¬Ø±Ø¨ ÙØ°Ø§:
alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"
ÙØ§ ØªØØªÙ٠اÙÙ
صÙÙÙØ§Øª عÙÙ Symbol.toPrimitive Ø ÙÙØ§ عÙÙvalueOf ÙØ§Ø¨ÙØ© ÙÙØªØ·Ø¨ÙÙ Ø ÙÙ٠تÙÙØ° تØÙÙÙ toString ÙÙØ· Ø ÙØ°ÙÙ ÙÙØ§[] ØªØµØ¨Ø Ø³ÙØ³ÙØ© ÙØ§Ø±ØºØ© Ø[1]ØªØµØ¨Ø "" 1 "" Ù "[ 1Ø2]تصبØ" 1Ø2 ".
Ø¹ÙØ¯Ù
ا تضÙÙ the binaryn plus Ø¨Ø§ÙØ¥Ø¶Ø§ÙØ© Ø¥ÙÙ Ø¹ÙØ§Ù
Ø© â+â ÙØ¥Ù ÙØ°Ø§ Ø§ÙØ¹Ø§Ù
Ù ÙØ¶ÙÙ ÙØ°Ø§ Ø§ÙØ´Ø¦ Ø¥ÙÙ Ø³ÙØ³ÙÙ ÙØµÙÙ Ø ÙØ¥ÙÙ ÙØÙÙÙØ§ Ø¥ÙÙ Ø³ÙØ³ÙØ© Ø£ÙØ¶Ùا Ø ÙØ°Ø§ ØªØ¨Ø¯Ù Ø§ÙØ®Ø·ÙØ© Ø§ÙØªØ§ÙÙØ© ÙÙ
ا ÙÙÙ:
alert( "" + 1 ); // "1"
alert( "1" + 1 ); // "11"
alert( "1,2" + 1 ); // "1,21"
Donât compare arrays with ==
Arrays in JavaScript, unlike some other programming languages, shouldnât be compared with operator ==.
This operator has no special treatment for arrays, it works with them as with any objects.
Letâs recall the rules:
- Two objects are equal
==only if theyâre references to the same object. - If one of the arguments of
==is an object, and the other one is a primitive, then the object gets converted to primitive, as explained in the chapter تØÙÙ٠اÙÙØ§Ø¦Ùات Ø¥ÙÙ ÙÙÙ Ù ÙØ±Ø¯Ù. - â¦With an exception of
nullandundefinedthat equal==each other and nothing else.
The strict comparison === is even simpler, as it doesnât convert types.
So, if we compare arrays with ==, they are never the same, unless we compare two variables that reference exactly the same array.
For example:
alert( [] == [] ); // false
alert( [0] == [0] ); // false
These arrays are technically different objects. So they arenât equal. The == operator doesnât do item-by-item comparison.
Comparison with primitives may give seemingly strange results as well:
alert( 0 == [] ); // true
alert('0' == [] ); // false
Here, in both cases, we compare a primitive with an array object. So the array [] gets converted to primitive for the purpose of comparison and becomes an empty string ''.
Then the comparison process goes on with the primitives, as described in the chapter ÙÙØ¹ Ø§ÙØªØÙÙÙØ§Øª:
// after [] was converted to ''
alert( 0 == '' ); // true, as '' becomes converted to number 0
alert('0' == '' ); // false, no type conversion, different strings
So, how to compare arrays?
Thatâs simple: donât use the == operator. Instead, compare them item-by-item in a loop or using iteration methods explained in the next chapter.
Summary
اÙ٠صÙÙÙØ§Øª ÙÙ ÙÙØ¹ خاص ٠٠اÙÙØ§Ø¦Ùات Ø Ù ÙØ§Ø³Ø¨ ÙØªØ®Ø²ÙÙ ÙØ¥Ø¯Ø§Ø±Ø© Ø¹ÙØ§ØµØ± Ø§ÙØ¨ÙØ§ÙØ§Øª اÙÙ Ø·ÙÙØ¨Ø©.
-
Ø§ÙØ¥Ø¹ÙاÙ:
// Ø§ÙØ£ÙÙØ§Ø³ اÙ٠ربعة (اÙ٠عتادة) let arr = [Ø§ÙØ¹Ùصر2, Ø§ÙØ¹Ùصر1...]; // ٠صÙÙÙÙ Ø¬Ø¯ÙØ¯Ù (ÙØ§Ø¯Ø±Ù ÙÙØºØ§ÙÙ) let arr = new Array(Ø§ÙØ¹Ùصر2, Ø§ÙØ¹Ùصر1...);ÙØ¤Ø¯Ù استدعاء "٠صÙÙÙÙ Ø¬Ø¯ÙØ¯Ù (رÙÙ ) " Ø¥ÙÙ Ø¥ÙØ´Ø§Ø¡ ٠صÙÙÙØ© بطÙ٠٠عÙÙ Ø ÙÙÙ٠بدÙÙ Ø¹ÙØ§ØµØ±â¦
-
Ø§ÙØ®Ø§ØµÙØ©
lengthÙÙ Ø·Ù٠اÙ٠صÙÙÙØ© Ø£Ù Ø Ø¹ÙÙ ÙØ¬Ù Ø§ÙØ¯ÙØ© Ø Ø¢Ø®Ø± ÙÙØ±Ø³ رÙÙ Ù Ø¨Ø§ÙØ¥Ø¶Ø§ÙØ© Ø¥ÙÙ ÙØ§ØØ¯. ÙØªÙ ضبط٠تÙÙØ§Ø¦ÙÙØ§ Ø¨ÙØ§Ø³Ø·Ø© طر٠ÙÙ٠صÙÙÙÙ. -
إذا Ø§Ø®ØªØµØ±ÙØ§ âØ§ÙØ·ÙÙâ ÙØ¯ÙÙÙØ§ Ø ÙØ³ÙØªÙ Ø§ÙØªØ·Ø§Ø¹ اÙ٠صÙÙÙØ©.
ÙÙ ÙÙÙØ§ استخدا٠٠صÙÙÙØ© Ù٠ادة ٠ع Ø§ÙØ¹Ù ÙÙØ§Øª Ø§ÙØªØ§ÙÙØ©:
push(...Ø¹ÙØ§ØµØ±)تضÙÙØ§ÙØ¹ÙØ§ØµØ±Ø¥Ù٠اÙÙÙØ§ÙØ©.pop()Ø¥Ø²Ø§ÙØ© Ø§ÙØ¹Ùصر ٠٠اÙÙÙØ§ÙØ© ÙØ¥Ø¹Ø§Ø¯ØªÙ.shift()ÙØ²ÙÙ Ø§ÙØ¹Ùصر Ù Ù Ø§ÙØ¨Ø¯Ø§ÙØ© ÙÙØ¹ÙدÙ.unshift(...Ø¹ÙØ§ØµØ±)تضÙÙØ§ÙØ¹ÙØ§ØµØ±Ø¥ÙÙ Ø§ÙØ¨Ø¯Ø§ÙÙ.
ÙÙØªÙرار ÙÙÙ Ø¹ÙØ§ØµØ± اÙ٠صÙÙÙØ©:
for (let i=0; i<arr.length; i++)--ÙØ¹Ù ٠بشÙ٠أسرع ÙÙ ØªÙØ§Ù٠٠ع اÙÙ ØªØµÙØ اÙÙØ¯ÙÙ .for (let item of arr)â Ø§ÙبÙÙØ© Ø§ÙØØ¯ÙØ«Ø© ÙÙØ¹Ùاصر ÙÙØ· Øfor (let i in arr)â ÙÙ ÙØ³ØªØ¹Ù ٠أبدا.
To compare arrays, donât use the == operator (as well as >, < and others), as they have no special treatment for arrays. They handle them as any objects, and itâs not what we usually want.
Instead you can use for..of loop to compare arrays item-by-item.
We will continue with arrays and study more methods to add, remove, extract elements and sort arrays in the next chapter ØªÙØ§Ø¨Ø¹ اÙ٠صÙÙÙØ§Øª (Array methods).
Ø§ÙØªØ¹ÙÙÙØ§Øª
<code>Ø ÙÙÙÙØ«Ùر Ù Ù Ø§ÙØ³Ø·Ùر استخدÙ<pre>Ø ÙÙØ£Ùثر Ù Ù 10 Ø³Ø·ÙØ± استخد٠(plnkr, JSBin, codepenâ¦)