javascript - 通过对对象键的数组进行排序来创建新对象
问题描述
我有一个由项目组成的对象数组:
[
{
CATEGORY:"Fruits"
ITEM_AVAIL:true
ITEM_NAME:"Apple"
ITEM_PRICE:100
ITEM_UNIT:"per_kg"
ITEM_UPDATED:Object
ORDER_COUNT:0
},
{
CATEGORY:"Vegetables"
ITEM_AVAIL:true
ITEM_NAME:"Aloo"
ITEM_PRICE:1000
ITEM_UNIT:"per_kg"
ITEM_UPDATED:Object
ORDER_COUNT:0
}
]
我想创建一个新对象,使得对象的每个键都是一个类别并保存项目对象数组,例如:
{
Fruits: [
{
CATEGORY:"Fruits"
ITEM_AVAIL:true
ITEM_NAME:"Apple"
ITEM_PRICE:100
ITEM_UNIT:"per_kg"
ITEM_UPDATED:Object
ORDER_COUNT:0
},
//more fruits
]
Vegetables: [
{
CATEGORY:"Vegetables"
ITEM_AVAIL:true
ITEM_NAME:"Aloo"
ITEM_PRICE:1000
ITEM_UNIT:"per_kg"
ITEM_UPDATED:Object
ORDER_COUNT:0
},
//more vegetables
]
}
新对象将根据项目类别创建。
解决方案
您可以像这样创建新对象
var data = [
{
CATEGORY:"Fruits",
ITEM_AVAIL:true,
ITEM_NAME:"Apple",
ITEM_PRICE:100,
ITEM_UNIT:"per_kg",
ITEM_UPDATED:Object,
ORDER_COUNT:0,
},
{
CATEGORY:"Vegetables",
ITEM_AVAIL:true,
ITEM_NAME:"Aloo",
ITEM_PRICE:1000,
ITEM_UNIT:"per_kg",
ITEM_UPDATED:Object,
ORDER_COUNT:0,
}
];
var newobj = [];
for (i in data){
newobj[i] = [];
newobj[i][data[i].CATEGORY] = data[i];
}
console.log(newobj);
推荐阅读
- python - 如何将 python 列表传输到 csv 表?
- mysql - 如何在 SQL 中创建组和计数 ID?
- wordpress - 通过 Page ID 在创建新页面时动态设置父页面
- c - 在c中找到与用户输入最近的闰年
- javascript - Vue / Nuxt webpack解决需要图像文件的错误
- python - 如何根据索引打印列表中的值?
- django - Latest() 函数给出,addPost(ModelName) 匹配查询不存在错误
- python - 带环的蒙特卡洛高斯函数
- node.js - 在adonisjs中使用关系返回数据得到空结果
- asp.net-core - @RenderSectionAsync 在哪种情况下有用?