JavaScript Array Metodlari: slice() vs splice()
Umid Negmatullayev / @undigitals / https://t.me/club_undigitalsIkkala funksiya/metod ham JavaScript array ni qirqish/o'chirish uchun ishlatiladi.
Asosiy farqlar:
- Agar ikkalasiga ham bittadan argument berilsa arr.slice(2) va arr.splice(2), slice() 0-indeksdan 2-indeksgacha elementlarni o'chirib undan keyingilarini yangi array qilib qaytaradi, splice() esa 0-indeksdan 2-indeksgacha bo'lgan elementlarni qaytaradi qolganlarini esa o'chiradi.
- slice() asosiy array ni o'zgartirmasdan aksincha yangi array qaytaradi, splice() amallarni asosiy(orginal) arrayda bajaradi va ba'zi hollarda bu kutilmagan yomon holatlarni keltirib chiqaradi agar asosiy array yana boshqa yerlarda ishlatilishi kerak bo'lsa.
- slice(1,2) ning ikkinchi argumenti u qaysi indeksgacha qirqishini bildirsa, splice(1,2) da esa birinchi argumentdan keying nechta indeks qirqishini birdiradi (hozirgi splice misolida 0 va 1 indeksdan keyin yana ikita array indeksi o'chiriladi).
slice() o’zgarmas (immutable), splice() original array ni o’zgartiradi.
Array.prototype.slice
Slice metodi array ni qirqib, qirqilmagan elementlarni yangi array ga solib qaytaradi, ya’ni orginal arrayni o’zgatirmaydi.
Ikkita argument oladi, ikkalasi ham ixtiyoriy, birinchisi qirqish boshlanadigan indeks, ikkinchisi qirqish tugallanadigan indeks. Agar hech qanaqa argument berilmasa to’liq holatda array qaytariladi (qirqilmasdan).
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
const slicedArray = orginalArray.slice()
console.log(slicedArray) // [‘a’, ‘b’, ‘c’, ‘d’, ’e’]
Agar bitta argument berilsa, 0 dan to berilgan argumentgacha bo’lgan indeks qirqiliadi
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
const slicedArray = orginalArray.slice(3)
console.log(slicedArray) // [‘d’, ’e’]
Ikkita argument bilan:
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
const slicedArray = orginalArray.slice(1,3)
console.log(slicedArray) // [‘b’, ‘c’, ‘d’]
Agar 0 dan kichkina argument berilsa indeks oxiridan bowlanadi:
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
const slicedArray = orginalArray.slice(-2)
console.log(slicedArray) // [‘d, ‘e’]
Array.prototype.splice()
Splice array metodi original array ni o’zgartiradi va array elementlarini o’chirish yoki qo’shish uchun ishlatiladi.
Bitta argument berilganda 0 dan boshlab to o’sha argumentgacha bo’lgan indeks qoladi undan keyingi indekslar o’chib ketadi.
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
const slicedArray = orginalArray.splice(2)
console.log(orginalArray) // [‘a’, ‘b’,] // orginal array
console.log(slicedArray) // [‘c’, ‘d’,e’,] // o’chib ketgan elementlar
Ikkinchi argument brinchi argumentdan kn nechta indeks o’chishi uchun.
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
orginalArray.splice(2, 2)
console.log(orginalArray) // [‘a’, ‘b’, ‘e’] // original array
Ikkinchidan kngi argumentlar arrayga yangi elementlar qo’shadi.
const orginalArray = [‘a’, ‘b’, ‘c’, ‘d’,’e’]
orginalArray.splice(2, 2, ‘c’, ‘f’)
console.log(orginalArray) // [‘a’, ‘b’, ‘e’, ‘c’,’f’] // original array