ধরুন, আমাদের কাছে নিম্নলিখিত অ্যারে অবজেক্ট আছে −
const arr = [
{
"date" : "2010-01-01",
"price" : 30
},
{
"date" : "2010-02-01",
"price" : 40
},
{
"date" : "2010-03-01",
"price" : 50
},
{
"date" : "2010-01-01",
"price2" : 45
},
{
"date" : "2010-05-01",
"price2" : 40
},
{
"date" : "2010-10-01",
"price2" : 50
}
]; আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এইরকম একটি অ্যারেতে নেয়। ফাংশনটি তখন অবজেক্টের "তারিখ" বৈশিষ্ট্যের উপর ভিত্তি করে বস্তুগুলিকে একত্রিত করতে হবে।
উদাহরণ
const arr = [
{
"date" : "2010-01-01", "price" : 30
},
{
"date" : "2010-02-01",
"price" : 40
},
{
"date" : "2010-03-01",
"price" : 50
},
{
"date" : "2010-01-01",
"price2" : 45
}, {
"date" : "2010-05-01",
"price2" : 40
},
{
"date" : "2010-10-01",
"price2" : 50
}
];
const mergeArray = (arr = []) => {
const data = arr.slice();
data.sort((a, b) => new Date(a.date) - new Date(b.date))
const res = []
data.forEach(el => {
if(!this[el.date]) {
this[el.date] = {
date: el.date,
price: null,
price2: null
}
res.push(this[el.date])
}
this[el.date] = Object.assign(this[el.date], el)
});
return res;
}
console.log(JSON.stringify(mergeArray(arr), undefined, 4)); আউটপুট
এবং কনসোলে আউটপুট হবে −
[
{
"date": "2010-01-01",
"price": 30,
"price2": 45
},
{
"date": "2010-02-01",
"price": 40,
"price2": null
},
{
"date": "2010-03-01",
"price": 50,
"price2": null
},
{
"date": "2010-05-01",
"price": null,
"price2": 40
},
{
"date": "2010-10-01",
"price": null,
"price2": 50
}
]