"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية مقارنة صفائف الكائنات في جافا سكريبت: دليل شامل

كيفية مقارنة صفائف الكائنات في جافا سكريبت: دليل شامل

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

How to Compare Arrays of Objects in JavaScript: A Comprehensive Guide

مقارنة مصفوفات الكائنات في جافا سكريبت: دليل شامل

المقدمة:
في تشفير جافا سكريبت، هناك غالبًا ما تنشأ الحاجة إلى مقارنة صفائف الكائنات. ومع ذلك، قد تمتلك الكائنات خصائص مختلفة مع قيم مفقودة، مما يعقد عملية المقارنة.

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

حل أنيق:

1. مقارنة خصائص العد: للتغلب على هذه التحديات، يمكنك استخدام الخطوات التالية:

    حساب عدد الخصائص في كلا الكائنين. إذا كانت مختلفة، فإن الكائنات ليست متساوية.
  • لكل خاصية، قارن قيمها في كلا الكائنين. إذا اختلفت أي من هذه القيم، فإن الكائنات غير متساوية.

2. طرق Object.keys() و Every(): يعد تنفيذ هذه التقنية في JavaScript أمرًا مباشرًا باستخدام وظائف Object.keys() و every():

const objectsEqual = (o1, o2) =>
    Object.keys(o1).length === Object.keys(o2).length
        && Object.keys(o1).every(p => o1[p] === o2[p]);

مثال للاستخدام:

const obj1 = { name: 'John', age: 33};
const obj2 = { age: 33, name: 'John' };
const obj3 = { name: 'John', age: 45 };

console.log(objectsEqual(obj1, obj2)); // true
console.log(objectsEqual(obj1, obj3)); // false
تضمن هذه الطريقة مقارنة موثوقة لمصفوفات الكائنات، بغض النظر عن عدد الخصائص أو القيم المفقودة.

بيان الافراج يتم استنساخ هذه المقالة في: 1729418656 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3