Array.isArray()‎

من موسوعة حسوب

الدالة Array.isArray()‎ تُحدِّد إذا كانت القيمة المُمرَّرة إليها هي مصفوفة أم لا.

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar');   // false
Array.isArray(undefined);  // false

البنية العامة

Array.isArray(obj)

obj

الكائن الذي سنختبره.

القيمة المعادة

true إذا كان obj مصفوفةً، وإلا فستُعاد القيمة false.

أمثلة

اختبار مختلف أنواع القيم

// جميع القيم الآتية هي مصفوفات
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'));
Array.isArray(new Array(3));
// Array.prototype هو مصفوفة
Array.isArray(Array.prototype); 

// جميع القيم الآتية ليست مصفوفة
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray({ __proto__: Array.prototype });

المعامل instanceof والدالة isArray

عند التحقق إذا كان أحد الكائنات مصفوفةً، فمن المُفضَّل استخدام الدالة Array.isArray بدلًا من المعامل instanceof لأنها تعمل على الإطارات iframes.

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// التحقق من المصفوفة
Array.isArray(arr);  // true
// لا تفعل هذا لأنها لن تعمل
arr instanceof Array; // false

تعويض نقص دعم المتصفحات

أُضيفَت الدالة Array.from أوّل مرة في معيار ECMAScript 5، وهذا يعني أنَّ هنالك بعض المتصفحات التي لم تدعم هذه الدالة بعد، لكن يمكن الالتفاف على هذه المشكلة باستخدام الشيفرة الآتية:

if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 5 4 9 10.5 5

مصادر ومواصفات