التابع ‎‎jQuery.inArray()‎‎ في jQuery

من موسوعة حسوب
< jQuery‏ | jQuery
اذهب إلى: تصفح، ابحث

jQuery.inArray( value, array [, fromIndex ] )‎

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

يعيد عددًا (Number).

الوصف

يبحث هذا التابع عن قيمة محدَّدة ضمن مصفوفةٍ ثمَّ يعيد قيمة فهرس موضعها (أو القيمة ‎-1 إن لم يجدها).

jQuery.inArray( value, array [, fromIndex ] )‎

أُضيف مع الإصدار: 1.2.

value

أي شيء، ويمثل القيمة المراد البحث عنها.

array

المصفوفة المراد البحث ضمن عناصرها.

fromIndex

عددٌ (Number) يمثل قيمة فهرس أحد عناصر المصفوفة الذي يراد بدء عملية البحث عنده. القيمة الافتراضيَّة هي 0 أي البحث ضمن جميع عناصر المصفوفة دون استثناء.

يشبه التابع ‎$.inArray()‎ تمامًا التابع ‎.indexOf()‎ الأساسي في JavaScript، إذ يعيد كلاهما القيمة ‎-1 عندما لا يعثران على أي عنصر مطابق. إن طابق العنصر الأول في المصفوفة القيمة value المعطاة، فسيعيد التابع ‎$.inArray()‎ القيمة 0 وهكذا.

لمَّا كانت JavaScript تعامل القيمة 0 وكأنَّها مساوية للقيمة المنطقيَّة false على نحوٍ غير مضبوط (مثل 0‎ == false ولكن 0‎ !== false)، فأنت بحاجة للتأكُّد من وجود القيمة value ضمن المصفوفة array عبر التحقُّق من عدم مساواة القيمة المعادة للقيمة ‎-1 (أو أن تكون أصغر منها).

عملية البحث عن العنصر ومطابقته مع القيمة المعطاة هي عمليَّة صارمة جدًا. فسنحصل في المثال التالي على القيمة ‎-1 (العنصر غير موجود) لأنَّ التابع يبحث عن عدد ضمن مصفوفة تحوي سلاسل نصية:
$.inArray( 5 + 5, [ "8", "9", "10", 10 + "" ] );

أمثلة

عرض قيمة فهرس عناصر محدَّدة موجودة في المصفوفة:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.inArray مثالٌ عن استعمال التابع</title>
  <style>
  div {
    color: blue;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div>موقع "أحمد" في المصفوفة هو <span></span></div>
<div>موقع العدد 4 هو  <span></span></div>
<div>لم يعثر على "جاسم لأن أعيدت القيمة <span></span></div>
<div>إن "سامر" موجود في المصفوفة ولكنه قبل الفرس 2، لذا  <span></span></div>
 
<script>
var arr = [ 4, "سامر", 8, "أحمد" ];
var $spans = $( "span" );
$spans.eq( 0 ).text( jQuery.inArray( "John", arr ) );
$spans.eq( 1 ).text( jQuery.inArray( 4, arr ) );
$spans.eq( 2 ).text( jQuery.inArray( "Karl", arr ) );
$spans.eq( 3 ).text( jQuery.inArray( "Pete", arr, 2 ) );
</script>
 
</body>
</html>

مصادر