في es6، يمكنك استخدام طريقة include() للمصفوفة لتحديد ما إذا كان المصفوفة تحتوي على قيمة معينة. يمكن استخدام هذه الطريقة لاكتشاف ما إذا كان المصفوفة تحتوي على قيمة معينة. ".
بيئة تشغيل هذا البرنامج التعليمي: نظام Windows 7، الإصدار 6 من ECMAScript، كمبيوتر Dell G3.
في ES5، يوفر المصفوفة بالفعل مؤشرًا للعثور على موضع العنصر، إذا لم يكن موجودًا، فإنه يُرجع -1. ومع ذلك، فإن هذه الوظيفة بها عيبان بسيطان عند تحديد ما إذا كان المصفوفة تحتوي على عنصر. 1 ويتم استخدام موضع العنصر للإشارة إلى ما إذا كان متضمنًا أم لا. لا توجد مشكلة من حيث الموضع، لكنه ليس دلاليًا بدرجة كافية. مشكلة أخرى هي أنه لا يمكن تحديد ما إذا كانت هناك عناصر NaN.
على سبيل المثال:
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' ك '، نان] console.log('%s', arr1.indexOf(NaN))
النتيجة:
-1
يوفر ES6 الدالة Array.includes() لتحديد ما إذا كان هناك عنصر معين مضمن، بالإضافة إلى عدم القدرة على تحديد موقعه، فإنه يحل المشكلة فوق مشكلتين من IndexOf . يُرجع صحيحًا أو خطأً مباشرةً للإشارة إلى ما إذا كان يحتوي على عنصر، كما أنه فعال بالنسبة لـ NaN.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', نان] console.log('%s', arr1.includes('c')) console.log('%s', arr1.includes('z')) console.log('%s', arr1.includes(NaN))
النتيجة:
صحيح خطأ شنيعتشير
المعلمة الثانية للدالة
trueinclude () إلى موضع بداية الحكم.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', نان] console.log('%s', arr1.includes('d', 1)) console.log('%s', arr1.includes('d', 3)) console.log('%s', arr1.includes('d', 4))
النتيجة:
صحيح حقيقي false
يمكن أن تكون المعلمة الثانية أيضًا رقمًا سالبًا، مما يشير إلى الرقم من اليمين، ولكنها لا تغير اتجاه البحث، ولا يزال اتجاه البحث من اليسار إلى اليمين.
console.log('%s', arr1.includes('k', -1)) console.log('%s', arr1.includes('k', -2)) console.log('%s', arr1.includes('i', -3))
النتيجة:
خطأ حقيقي
ملخص
كاذب:
طريقة تتضمن () تستخدم لاكتشاف ما إذا كان المصفوفة تحتوي على قيمة معينة، ويمكنها الحكم على NaN وإرجاع صحيح/خطأ مباشرة، وهي أكثر سهولة
في طريقة IndexOf ()، المستخدمة للعثور على موضع العنصر القاضي NaN ، يُرجع -1، مما يعني أنه لم يتم تضمينه، وnon-1 يعني الموضع الحالي المتضمن.
كلتا الطريقتين لها مزاياها وعيوبها، والتي تعتمد على الوضع الفعلي. إذا كان العنصر يحتوي على NaN، استخدم include()، وإلا يمكن استخدام أي منهما.