بالتأكيد، يمكنك دمج الكائنين obja
و objb
باستخدام القيمة المشتركة value1
بواسطة تحديد الكائن المناسب في objb
باستخدام namekey1
. هناك عدة طرق للقيام بذلك في جافاسكربت. إليك طريقة باستخدام reduce
:
javascriptlet obja = [{ key1: 'value1', a: 1, b: 2 }];
let objb = [{ namekey1: 'value1', d: 3, c: 4 }];
let objc = obja.reduce((acc, curr) => {
let match = objb.find(item => item.namekey1 === curr.key1);
if (match) {
let mergedObj = { ...curr, ...match };
acc.push(mergedObj);
}
return acc;
}, []);
console.log(objc);
هذا الكود يستخدم reduce
لدمج obja
مع objb
بناءً على القيم المشتركة، وينتج الكائن المطلوب objc
.
المزيد من المعلومات
بالطبع! في هذا الكود، نقوم بالمرور على obja
باستخدام reduce
، ونبحث في objb
باستخدام find
للعثور على الكائن الذي يحتوي على القيمة المشتركة value1
في namekey1
. إذا تم العثور على تطابق، نقوم بدمج الكائنين curr
و match
باستخدام spread operator (...
) لإنشاء كائن مدمج mergedObj
، ثم نضيفه إلى الكائن الناتج acc
. في النهاية، يتم إرجاع acc
كنتيجة لعملية reduce
، والتي تكون قائمة بالكائنات المدمجة بناءً على القيم المشتركة.
يجب ملاحظة أنه إذا كان لديك قيم مشتركة متعددة، ستقوم هذه الطريقة بإنشاء قائمة من الكائنات المدمجة، ولكن إذا كنت ترغب في دمجها إلى كائن واحد فقط، فيمكنك تعديل الكود ليتماشى مع هذا الهدف.