Skip to content

Tiplangan Massiv Metodlari

Tiplangan massivlar (Typed Arrays) oddiy massivlarning ko'plab metodlarini qo'llab-quvvatlaydi, lekin ularning o'ziga xos xususiyatlaridan kelib chiqqan holda ba'zi farqlar mavjud.


Maxsus metodlar

Tiplangan massivlar uchun xos bo'lgan ba'zi metodlar va xususiyatlar:

from() va of()

Ushbu metodlar yangi tiplangan massiv yaratish uchun ishlatiladi:

js
// String yoki massivdan yaratish
const arr1 = Int16Array.from([1, 2, 3])

// Qiymatlardan yaratish
const arr2 = Int16Array.of(10, 20, 30)

BYTES_PER_ELEMENT

Har bir element xotirada necha bayt joy egallashini ko'rsatadi:

js
const arr = new Int32Array(5)
console.log(arr.BYTES_PER_ELEMENT) // 4

Umumiy massiv metodlari

Tiplangan massivlar oddiy massivlar bilan bir xil bo'lgan quyidagi metodlarga ega:

  1. Iteratsiya (Aylanish): forEach(), map(), filter(), reduce(), every(), some(), find(), findIndex().
  2. Qidiruv: includes(), indexOf(), lastIndexOf().
  3. O'zgartirish: reverse(), fill(), sort(), copyWithin().
  4. Boshqalar: join(), slice(), subarray().

Subarray vs Slice

  • slice(): Massivning bir qismini nusxalab yangi massiv yaratadi.
  • subarray(): Massivning bir qismini nusxalamasdan o'sha xotira sohasiga yangi "ko'rinish" (view) yaratadi. Bu juda tez ishlaydi.

Qo'llab-quvvatlanmaydigan metodlar

Tiplangan massivlar o'zgarmas uzunlikka ega bo'lgani uchun, massiv uzunligini o'zgartiruvchi metodlar mavjud emas:

MetodNima uchun mavjud emas?
push()Uzunlikni oshiradi.
pop()Oxirgi elementni o'chiradi.
shift()Birinchi elementni o'chiradi.
unshift()Boshiga element qo'shadi.
splice()Elementlarni o'chiradi yoki qo'shadi.
concat()Ikki massivni birlashtirib yangisizni yaratadi.

Amaliy misollar

Fetch API bilan ishlatish

Ma'lumotlarni binar ko'rinishda olish:

js
fetch(url)
  .then((response) => response.arrayBuffer())
  .then((buffer) => {
    const uint8View = new Uint8Array(buffer)
    console.log('Birinchi bayt:', uint8View[0])
  })

Canvas (Tasvirlar) bilan ishlash

js
const canvas = document.getElementById('myCanvas')
const context = canvas.getContext('2d')
const imageData = context.getImageData(0, 0, canvas.width, canvas.height)

// Tasvir piksellari Uint8ClampedArray ko'rinishida bo'ladi
const pixels = imageData.data

Bilib qo'ygan yaxshi

Agar sizga binar ma'lumotlar bilan juda murakkab (turli xil tiplarni bitta joyda saqlash) amallar kerak bo'lsa, DataView-dan foydalaning.