سلام. امیدوارم حالتون عالی باشه.
من یه آرایه دارم توی جاوااسکریپت که این اطلاعات توش هست.
[
{_id:0,name:'color',value:'red'},
{_id:0,name:'color',value:'blue'},
{_id:0,name:'color',value:'yellow'},
{_id:1,name:'size',value:'35'},
{_id:1,name:'size',value:'36'},
{_id:1,name:'size',value:'37'},
{_id:1,name:'size',value:'38'},
{_id:2,name:'brand',value:'adidas'},
{_id:2,name:'brand',value:'test'},
]
آیدی 0 برای رنگ هست. آیدی یک برای سایز، آیدی دو برای برند و این تعداد میتونه بیشتر هم باشه. در واقع ویژگی های دسته بندی های سایت هست که ادمین میتونه چیزایی مثل جنس، کشور سازنده و... رو بهش اضافه بکنه.
سوالم اینه که چطور میتونم آرایه بالا رو به این شکل در بیارم؟
[
{
_id:0,
name:'color',
values:['red','blue','yellow']
},
{
_id:1,
name:'size',
values:['35','36','37','38']
},
{
_id:2,
name:'brand',
values:['adidas','test']
},
]
سلام
با loop میتونید ارایه جدید به وجود بیارید.
const array = [
{_id:0,name:'color',value:'red'},
{_id:0,name:'color',value:'blue'},
{_id:0,name:'color',value:'yellow'},
{_id:1,name:'size',value:'35'},
{_id:1,name:'size',value:'36'},
{_id:1,name:'size',value:'37'},
{_id:1,name:'size',value:'38'},
{_id:2,name:'brand',value:'adidas'},
{_id:2,name:'brand',value:'test'},
]
const newArray = [];
let objMap = {};
for (const item of array) {
if (objMap[item._id]) {
objMap[item._id].values.push(item.value);
} else {
const newObj = {_id: item._id, name: item.name, values: [item.value]};
objMap[item._id] = newObj;
newArray.push(newObj);
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟