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.