मान लीजिए, हमारे पास इस तरह की वस्तुओं की दो सरणियाँ हैं -
const arr1 = [
{name:'test', lastname: 'test', gender:'f'},
{name:'test1', lastname: 'test1', gender:'f'},
{name:'test2', lastname: 'test2', gender:'m'}
];
const arr2 = [
{name:'test21', lastname: 'test21', gender:'f'},
{name:'test1', lastname: 'test1', gender:'f'},
{name:'test2', lastname: 'test2', gender:'m'},
{name:'test22', lastname: 'test22', gender:'m'}
]; इन सरणियों में कोई दोहराई जाने वाली वस्तु नहीं है ('नाम' संपत्ति के आधार पर दोहराते हुए) लेकिन पहली और दूसरी वस्तुओं में दोहराए जाने वाले नामों के साथ कुछ वस्तुएं मौजूद हैं।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो दो ऐसी सरणियों को लेता है और एक नया सरणी देता है।
नई सरणी में पहली और दूसरी सरणी दोनों की सभी अनूठी वस्तुएं होनी चाहिए। यहां, किसी भी वस्तु की विशिष्टता की जांच करने के लिए हम उसकी अनूठी "नाम" संपत्ति की जांच करेंगे।
उदाहरण
इसके लिए कोड होगा -
const arr1 = [
{name:'test', lastname: 'test', gender:'f'},
{name:'test1', lastname: 'test1', gender:'f'},
{name:'test2', lastname: 'test2', gender:'m'}
];
const arr2 = [
{name:'test21', lastname: 'test21', gender:'f'},
{name:'test1', lastname: 'test1', gender:'f'},
{name:'test2', lastname: 'test2', gender:'m'},
{name:'test22', lastname: 'test22', gender:'m'}
];
const mergeUniquely = (arr1 = [], arr2 = []) => {
const newArr = arr1.concat(arr2);
const map = {};
const res = [];
newArr.forEach(el => {
if(!map[el['name']]){
res.push(el);
map[el['name']] = 1;
};
});
return res;
};
console.log(mergeUniquely(arr1, arr2)); आउटपुट
और कंसोल में आउटपुट होगा -
[
{ name: 'test', lastname: 'test', gender: 'f' },
{ name: 'test1', lastname: 'test1', gender: 'f' },
{ name: 'test2', lastname: 'test2', gender: 'm' },
{ name: 'test21', lastname: 'test21', gender: 'f' },
{ name: 'test22', lastname: 'test22', gender: 'm' }
]