Javascript 需要根据特定ID对数组进行分类
您好,我在java脚本中工作&现在我有hotel_id和category_id,需要对值进行排序并按类别求和Javascript 需要根据特定ID对数组进行分类,javascript,sorting,mapping,Javascript,Sorting,Mapping,您好,我在java脚本中工作&现在我有hotel_id和category_id,需要对值进行排序并按类别求和 let myarray = [ { price: 257, category: 1, hotel_id: 4 }, { price: 493, category: 1, hotel_id: 3 }, { price: 514, category: 1, hotel_id: 3 },
let myarray = [
{
price: 257,
category: 1,
hotel_id: 4
},
{
price: 493,
category: 1,
hotel_id: 3
},
{
price: 514,
category: 1,
hotel_id: 3
},
{
price: 257,
category: 1,
hotel_id: 3
},
{
price: 104,
category: 1,
hotel_id: 3
},
{
price: 295,
category: 1,
hotel_id: 3
},
{
price: 125,
category: 1,
hotel_id: 2
},
{
price: 125,
category: 1,
hotel_id: 2
},
{
price: 157,
category: 1,
hotel_id: 2
},
{
price: 125,
category: 1,
hotel_id: 2
},
{
price: 125,
category: 1,
hotel_id: 1
},
{
price: 43,
category: 1,
hotel_id: 1
},
{
price: 43,
category: 2,
hotel_id: 1
},
{
price: 43,
category: 2,
hotel_id: 1
}
];
var hotel_to_values = myarray.reduce(function (obj, item) {
obj[item.hotel_id] = obj[item.hotel_id] || [];
obj[item.hotel_id].push(item.category);
return obj;
}, {});
var hotels = Object.keys(hotel_to_values).map(function (key) {
return {hotel_id: key, category: hotel_to_values[key]};
});
我需要像这样分类或分组
- 1号酒店
- 第一类
- 价格20
- 第2类
- 价格20,价格30
- 第一类
[
{
"hotel_id": "1",
"category": [
1,
1,
2,
2
]
},
{
"hotel_id": "2",
"category": [
1,
1,
1,
1
]
},
{
"hotel_id": "3",
"category": [
1,
1,
1,
1,
1
]
},
{
"hotel_id": "4",
"category": [
1
]
}
]
我需要在类别内的价格
我现在更新我的代码。你可以检查我实际在做什么。是的,我使用了reduce方法,但无法获得实际结果。在你的reduce()
中,你没有细分每个类别。我不能100%确定类别所需的输出,下面使用一个具有每个唯一值的对象作为键和每个类别的价格数组
var hotel_to_values=myarray.reduce(函数(obj,项){
const o=obj[item.hotel_id]=obj[item.hotel_id]|{};
o[item.category]=(o[item.category]| |[]).concat(item.price);
返回obj;
}, {});
var hotels=Object.key(hotel_到_值).map(function(key){
返回{hotel_id:key,category:hotel_to_values[key]};
});
console.log(酒店)
。作为控制台包装{最大高度:100%!重要;}
设myarray=[{
价格:257,
类别:1,,
酒店id:4
},
{
价格:493,
类别:1,,
酒店id:3
},
{
价格:514,
类别:1,,
酒店id:3
},
{
价格:257,
类别:1,,
酒店id:3
},
{
价格:104,
类别:1,,
酒店id:3
},
{
价格:295,
类别:1,,
酒店id:3
},
{
价格:125,
类别:1,,
酒店id:2
},
{
价格:125,
类别:1,,
酒店id:2
},
{
价格:157,
类别:1,,
酒店id:2
},
{
价格:125,
类别:1,,
酒店id:2
},
{
价格:125,
类别:1,,
酒店id:1
},
{
价格:43,
类别:1,,
酒店id:1
},
{
价格:43,
类别:2,
酒店id:1
},
{
价格:43,
类别:2,
酒店id:1
}
];
查看javascript reduce函数,请发布更清晰的预期输出。@user184994现在您可以看到我的代码是的,我使用reduce函数,但我有一个问题,我只能处理酒店而不能categories@ZaheerAhmad你也可以用这种格式发布预期的输出吗?@charlietfl谢谢你的指导方针我添加了我的代码和排练。现在请检查&是的,我也找到了小组,但无法找到好的结果。如果您知道一些事情,请告诉我:)我需要相同的输出,谢谢这两件事:)charlietflI从新对象中删除了categories
属性,并且使用更少的代码也可以使用相同的输出