صفائف من النوع

اكتشف ما هي المصفوفات المكتوبة وكيفية استخدامها

JavaScript Provides 8 صفيف مكتوبالأنواع:

  • Int8Arrayمجموعة من الأعداد الصحيحة الموقعة 8 بت
  • Int16Arrayمصفوفة من الأعداد الصحيحة الموقعة ذات 16 بت
  • Int32Arrayمجموعة من الأعداد الصحيحة الموقعة 32 بت
  • Uint8Arrayمجموعة من 8 بت أعداد صحيحة
  • Uint16Arrayمصفوفة من الأعداد الصحيحة بدون إشارة 16 بت
  • Uint32Arrayصفيف من الأعداد الصحيحة بدون إشارة 32 بت
  • Float32Arrayصفيف من أرقام الفاصلة العائمة 32 بت
  • Float64Arrayصفيف من أرقام الفاصلة العائمة 64 بت

كل منهمArrayBufferViewحالات.

المصفوفة المطبوعة هي في الأساس طريقة عرض في ملفArrayBuffer، حيث يكون لكل عنصر نفس الحجم والنوع.

DataViewهي طريقة عرض أخرى في ArrayBuffer ، ولكن في هذه الحالة يمكن أن يكون للعناصر الموجودة في المصفوفة أحجام وأنواع مختلفة.

فيما يلي مثال على كيفية إنشاء مصفوفة من الأعداد الصحيحة الموقعة 8 بت:

const a = new Int8Array()

يمكنك تخصيص عدد n بايت مسبقًا:

const bytes = 1024
const a = new Int8Array(bytes)

الاستخدام الرئيسي هو السماح بالنظر إلى ArrayBuffer ، والذي يكون معتمًا بمفرده (لا يمكننا فحص محتواه).

إليك كيف نفعل ذلك:

//we got this `buffer` ArrayBuffer
const a = new Int8Array(buffer)

هذه المصفوفات المكتوبة تشبه المصفوفات ، لذا يمكننا الآن فحص محتوى المخزن المؤقت عبر تقنيات الوصول إلى المصفوفة المعتادة ، ولدينا إمكانية الوصول إلى الكثير من الأساليب والخصائص بما في ذلكmap()وreduce()وهكذا.

حالة الاستخدام الرئيسية للصفائف المكتوبة هي استخدامها معWebGLوصوت الويبأو القماش API. تتوقع بعض وظائف WebGL المصفوفات المكتوبة ، لأنها أكثر أداءً من مصفوفات JavaScript العادية.

هناك شيء واحد يجب مراعاته وهو أن المصفوفات المكتوبة لا تسمح لنا بالتحكم في ملفالانتماء:يستخدم ترتيب البايت للنظام الأساسي. بشكل عام ، يعمل هذا بشكل جيد ، لأن حالة الاستخدام الرئيسية كما قلنا هي استخدام المصفوفة محليًا ، باستخدام إحدى واجهات برمجة تطبيقات الوسائط المتعددة. أيضًا ، تستخدم معظم أجهزة الكمبيوتر الاستهلاكية القليل من endian نظرًا لأن Intel تستخدم هذه الاتفاقية. ولكن ، إذا قمت بنقل بيانات مصفوفة مكتوبة على نظام يستخدم Endian كبير ، فقد تكون البيانات مشفرة بشكل سيئ وبالتالي تصبح غير صالحة.

إذا كنت بحاجة إلى هذا النوع من السيطرة على endianness ، استخدمعرض البياناتبدلا من.


المزيد من دروس المتصفح: