--- title: Array.prototype.slice() slug: Web/JavaScript/Reference/Global_Objects/Array/slice tags: - المصفوفات - جافا سكريبت translation_of: Web/JavaScript/Reference/Global_Objects/Array/slice ---
ال slice()
method إرجاع نسخة ضئيلة من جزء من مصفوفة إلى object مصفوفة جديد تم تحديده من start
إلى end
(end
غير مضمنة) بينما start
و end
تمثلان مؤشر العناصر في هذه المصفوفة. لن يتم تعديل المصفوفة الأصلية.
The source for this interactive demo is stored in a GitHub repository. If you'd like to contribute to the interactive demo project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
arr.slice([start[, end]])
start
{{optional_inline}}slice(-2)
يستخرج آخر عنصرين في التسلسل.start
غير محددة, تبدأslice
من المؤشر 0
.start
is أكبر من نطاق فهرس التسلسل ، يتم إرجاع صفيف فارغ.end
{{optional_inline}}slice
مستخرجات إلى ولا تشمل end
. على سبيل المثال, slice(1,4)
يستخرج العنصر الثاني من خلال العنصر الرابع (العناصر المفهرسة 1 و 2 و 3).slice(2,-1)
يستخرج العنصر الثالث من خلال العنصر الثاني إلى الأخير في التسلسل.end
, slice
مستخرجات من خلال نهاية التسلسل(arr.length
).end
أكبر من طول التسلسل, فإنslice
تستخرج حتى نهاية التسلسل(arr.length
).مصفوفة جديدة تحتوي على العناصر المستخرجة.
slice
لا تغير المصفوفة الأصلية. تقوم بإرجاع نسخة ضئيلة من العناصر من المصفوفة الأصلية. يتم نسخ عناصر الصفيف الأصلي في الصفيف الذي تم إرجاعه كما يلي:
slice
بنسخ reference object إلى المصفوفة الجديدة الجديد. يشير كل من المصفوفة الأصلية والجديدة إلى نفس ال object. إذا تغير reference Object ، تكون التغييرات مرئية لكل من المصفوفات الجديدة والأصلية.slice
بنسخ القيم إلى مصفوفة جديدة. لا تؤثر التغييرات على الحرف أو الرقم أو القيمة المنطقية في مصفوفة على المصفوفة الآخرى.إذا تمت إضافة عنصر جديد إلى أي مصفوفة ، فلن تتأثر المصفوفة الآخرى.
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'] let citrus = fruits.slice(1, 3) // fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'] // citrus contains ['Orange','Lemon']
slice
في المثال التالي, تقومslice
بإنشاء مصفوفة جديدة newCar
, من myCar
. كلاهما يتضمن إشارة إلى الobject myHonda
. عندما يتغير لون myHonda
إلى الأرجواني, تعكس كلا المصفوفتان التغيير.
// Using slice, create newCar from myCar. let myHonda = { color: 'red', wheels: 4, engine: { cylinders: 4, size: 2.2 } } let myCar = [myHonda, 2, 'cherry condition', 'purchased 1997'] let newCar = myCar.slice(0, 2) // Display the values of myCar, newCar, and the color of myHonda // referenced from both arrays. console.log('myCar = ' + JSON.stringify(myCar)) console.log('newCar = ' + JSON.stringify(newCar)) console.log('myCar[0].color = ' + myCar[0].color) console.log('newCar[0].color = ' + newCar[0].color) // Change the color of myHonda. myHonda.color = 'purple' console.log('The new color of my Honda is ' + myHonda.color) // Display the color of myHonda referenced from both arrays. console.log('myCar[0].color = ' + myCar[0].color) console.log('newCar[0].color = ' + newCar[0].color)
This script writes:
myCar = [{color: 'red', wheels: 4, engine: {cylinders: 4, size: 2.2}}, 2, 'cherry condition', 'purchased 1997'] newCar = [{color: 'red', wheels: 4, engine: {cylinders: 4, size: 2.2}}, 2] myCar[0].color = red newCar[0].color = red The new color of my Honda is purple myCar[0].color = purple newCar[0].color = purple
slice
method يمكن أيضًا استدعاؤها لتحويل Array-like objects / مجموعات إلى مصفوفة جديدة. انت فقط {{jsxref("Function.prototype.bind", "bind")}} the method لل object. The {{jsxref("Functions/arguments", "arguments")}}داخل دالة هو مثال على 'array-like object'.
function list() { return Array.prototype.slice.call(arguments) } let list1 = list(1, 2, 3) // [1, 2, 3]
البناء يمكن أن يتم ب {{jsxref("Function.prototype.call", "call()")}} method of {{jsxref("Function.prototype")}} ويمكن تقليلها باستخدام [].slice.call(arguments)
بدلا منArray.prototype.slice.call
.
على أي حال يمكن تبسيطها باستخدام {{jsxref("Function.prototype.bind", "bind")}}.
let unboundSlice = Array.prototype.slice let slice = Function.prototype.call.bind(unboundSlice) function list() { return slice(arguments) } let list1 = list(1, 2, 3) // [1, 2, 3]
مواصفات |
---|
{{SpecName('ESDraft', '#sec-array.prototype.slice', 'Array.prototype.slice')}} |
{{Compat("javascript.builtins.Array.slice")}}