"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن حساب فرق المجموعة (A - B) بكفاءة في مصفوفات JavaScript؟

كيف يمكن حساب فرق المجموعة (A - B) بكفاءة في مصفوفات JavaScript؟

تم النشر بتاريخ 2024-11-03
تصفح:685

How to Efficiently Calculate the Set Difference (A - B) in JavaScript Arrays?

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

عند العمل مع مجموعات مخزنة كمصفوفات جافا سكريبت، يصبح حساب الفرق بينها (أ - ب) بكفاءة مهم. فيما يلي بعض الأساليب المحسّنة لهذه المهمة:

الطريقة المستندة إلى الوظيفة الأصلية:

توفر طريقة التصفية الأصلية () حلاً أنيقًا وموجزًا:

var diff = A.filter(function(x) {
  return B.indexOf(x) 

يتكرر هذا على A ويحدد العناصر غير الموجودة في B، ويؤدي بشكل أساسي عملية فرق المجموعة.

التحسين الخاص بأبو بريص:

بالنسبة للمتصفحات المستندة إلى Gecko (مثل Firefox)، تتيح طريقة Array.prototype.subtract()‎ اتباع نهج أكثر تخصصًا:

var diff = A.subtract(B);

تحسب هذه الطريقة الفرق بين المصفوفات مباشرة، مما قد يوفر أداءً محسنًا.

بديل المكتبة خفيف الوزن:

بينما تكون الوظائف الأصلية كافية لمعظم الحالات، إلا أنها خفيفة الوزن يمكن للمكتبات مثل Underscore.js توفير إمكانات معالجة أكثر تقدمًا للمجموعة. على سبيل المثال، تستخدم التعليمة البرمجية التالية الشرطة السفلية لحساب فرق المجموعة:

var diff = _.difference(A, B);

معالجة العناصر المكررة:

يفترض الحل المذكور مجموعات بدون عناصر مكررة. للتعامل مع العناصر المكررة، فكر في استخدام أسلوب Lodash _.uniq() للحصول على عناصر فريدة قبل إجراء عملية تحديد الفرق. إليك مثال:

var uniqueA = _.uniq(A);
var uniqueB = _.uniq(B);
var diff = _.difference(uniqueA, uniqueB);

من خلال استخدام هذه الأساليب، يمكنك حساب اختلافات المجموعة بفعالية وكفاءة باستخدام صفائف JavaScript. يعتمد اختيار الطريقة على عوامل مثل توافق المتصفح ومتطلبات الأداء.

بيان الافراج أعيد طبع هذه المقالة على: 1729478538 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3