القوائم في الحياة تتغير: مكوّن جديد في الوصفة، طالب يدخل الطابور وآخر يخرج. بدل كتابة المصفوفة من جديد نستخدم أربع عمليات: اثنتان تعملان في نهاية المصفوفة واثنتان في بدايتها.
في النهاية: push و pop
list.push(value) «تدفع» قيمة (أو أكثر، تفصلها فواصل) إلى نهاية المصفوفة. وlist.pop() تحذف القيمة الأخيرة:
const sandwich = ["bread", "lettuce", "tomato"];
sandwich.push("mayo", "cheese");
console.log(sandwich);
sandwich.pop();
console.log(sandwich);["bread", "lettuce", "tomato", "mayo", "cheese"] ["bread", "lettuce", "tomato", "mayo"]
const؛ لأننا نغيّر محتوى المصفوفة ولا نضع مكانها مصفوفة جديدة.في البداية: shift و unshift
list.shift() تحذف القيمة الأولى فتتقدّم بقية القيم خطوة. وlist.unshift(value) تضيف قيمة إلى البداية:
const ranking = ["Lily", "Noah", "Mason", "Hassan"];
ranking.pop();
ranking.unshift("Hassan");
console.log(ranking);
ranking.shift();
console.log(ranking);["Hassan", "Lily", "Noah", "Mason"] ["Lily", "Noah", "Mason"]
| إضافة | حذف | |
|---|---|---|
| في النهاية | push(v) | pop() |
| في البداية | unshift(v) | shift() |
pop() وshift() لا يُكتب شيء داخل أقواسهما؛ فهما تحذفان قيمة مكانها معروف. أما push وunshift فتحتاجان القيمة المضافة.استخدامات مفيدة
pop() وshift() تُرجعان القيمة المحذوفة، فنستطيع حفظها في متغير. وpush داخل حلقة تبني مصفوفة جديدة تبدأ فارغة []:
const queue = ["Ali", "Mona", "Omar"];
const first = queue.shift();
console.log("Served: " + first);
console.log(queue);
const evens = [];
for (let i = 2; i <= 10; i = i + 2) {
evens.push(i);
}
console.log(evens);Served: Ali ["Mona", "Omar"] [2, 4, 6, 8, 10]
تدريبات
أكمل السطر 3 لتضيف "mayo" و"bacon" معًا إلى نهاية sandwichIngredients بسطر واحد.
const sandwichIngredients = ["bread", "lettuce", "tomato", "cheese"];
___
console.log("Sandwich Ingredients");
console.log(sandwichIngredients);اضغط «تشغيل» لترى النتيجة. الآيس كريم لا مكان له في المكرونة! أكمل السطر 3 لتحذف القيمة الأخيرة من ingredientsList.
const ingredientsList = ["pasta", "tomatoes", "garlic", "cheese", "ice cream"];
___
console.log("Pasta Ingredients");
console.log(ingredientsList);اضغط «تشغيل» لترى النتيجة. أكمل السطر 3 لتحذف القيمة الأولى من burgerIngredients.
const burgerIngredients = ["cucumber", "sauce", "shrimp", "mayo"];
___
console.log("Burger ingredients");
console.log(burgerIngredients);اضغط «تشغيل» لترى النتيجة. أكمل السطر 3 لتضيف "mushroom" إلى بداية burgerIngredients.
const burgerIngredients = ["cucumber", "sauce", "shrimp", "mayo"];
___
console.log("Burger ingredients");
console.log(burgerIngredients);اضغط «تشغيل» لترى النتيجة. في السطر 3 احذف الحرف الزائد في آخر letterList حتى تبقى حروف كلمة program فقط.
let letterList = ["p", "r", "o", "g", "r", "a", "m", "y"]; console.log(letterList);
اضغط «تشغيل» لترى النتيجة. طابور المقصف: Sara تنضم إلى آخر الطابور، ثم يُخدم أول طالب ويخرج. اطبع Served: Ali (استخدم القيمة التي تُرجعها shift())، ثم اطبع الطابور: ["Mona", "Omar", "Sara"].
const queue = ["Ali", "Mona", "Omar"];
اضغط «تشغيل» لترى النتيجة. ابنِ مصفوفة جديدة اسمها passed فيها الدرجات التي تساوي 50 أو أكثر فقط (استخدم push داخل for...of). اطبعها ثم اطبع عددها: [78, 90, 66] ثم 3.
const marks = [45, 78, 90, 30, 66]; const passed = [];
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- النهاية:
push(v)تضيف وpop()تحذف. - البداية:
unshift(v)تضيف وshift()تحذف. pop()وshift()تُرجعان القيمة المحذوفة، وpushفي حلقة تبني مصفوفة جديدة.