اذهب إلى المحتوى

السؤال

نشر

في جافاسكريبت JavaScript يمكن معرفة نوع قيمة معينة من خلال الكلمة المفتاحية typeof بالشكل التالي:

typeof "hi";	// string
typeof 123;	// number
typeof Date.now; // function

ولكن عندما أردت التحقق من متغير يحتوي على مصفوفة تم إرجاع Object ونفس الأمر إذا قمت بالتحقق من كائن { } تكون نفس النتيجة. كيف يمكنني التفريق بينهما؟

كيفية التحقق من أن قيمة ما عبارة عن مصفوفة في جافاسكريبت JavaScript

Recommended Posts

  • 1
نشر

المصفوفات ليست من أنواع البيانات Data Types الأساسية في جافاسكربت، بل تعتبر من نوع كائن Object كغيرها من الأصناف، لذا للتحقق من أن قيمة ما هي من نوع مصفوفة يمكن استخدام الكلمة المحجوزة instanceof والتحقق ما إذا كانت القيمة نسخة من نوع Array كالتالي:

[] instanceof Array // true

5 instanceof Array // false
{} instanceof Array // false
"Emad" instanceof Array // false

أو لجعل الشيفرة أكثر وضوحًا يمكن الاستعانة بالتابع الثابت static ضمن الصنف Array نفسه بالاسم isArray، حيث يعيد قيمة منطقية تدل فيما إذا كانت القيمة الممررة له هي مصفوفة كالتالي:

Array.isArray([]) // true

Array.isArray(5) // false
Array.isArray({}) // false
Array.isArray("Emad") // false

 

  • 1
نشر

بما أن المصفوفة عبارة عن كائن من صنف Array يمكن التحقق من احتوائها على الدالة البانية من خلال شرط بسيط

variable.constructor === Array

يمكن تطبيق هذه الفكرة على الكائنات

let o = {}
o.constructor === Object // true

let n = new Number(3)
n.constructor === Number // true

/**/

function Person(name) {
  this.name = name
}
let person = new Person('Hsoub');
person.constructor === Person

 

  • 0
نشر
بتاريخ 5 دقائق مضت قال Emad Saif:

في جافاسكريبت JavaScript يمكن معرفة نوع قيمة معينة من خلال الكلمة المفتاحية typeof بالشكل التالي:


typeof "hi";	// string
typeof 123;	// number
typeof Date.now; // function

ولكن عندما أردت التحقق من متغير يحتوي على مصفوفة تم إرجاع Object ونفس الأمر إذا قمت بالتحقق من كائن { } تكون نفس النتيجة. كيف يمكنني التفريق بينهما؟

كيفية التحقق من أن قيمة ما عبارة عن مصفوفة في جافاسكريبت JavaScript

يمكنك استخدام ;(Variable)Array.isArray

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...