gpt4 book ai didi

javascript - 如何使用 Angular.js/Javascript 根据键值对数组进行排序

转载 作者:行者123 更新时间:2023-11-29 19:10:01 25 4
gpt4 key购买 nike

我需要一个帮助。我需要使用 Angular.js/Javascript 使用一种特定格式根据键值对数组进行排序。我在下面解释我的数组。

var stepsModel=[
{'day_id':2,'day_name':'Tuesday','image':"1.png"},
{'day_id':2,'day_name':'Tuesday','image':"2.png"},
{'day_id':2,'day_name':'Tuesday','image':"3.png"},
{'day_id':3,'day_name':'Wednsday','image':"1.png"},
{'day_id':3,'day_name':'Wednsday','image':"2.png"}
]

上面是我给定的数组。我需要根据 day_id 对它进行排序。我的预期输出如下。

var output = [
{
'day_id': 2,
'day_name': 'Tuesday',
'special': [
{ 'image': 1. png },
{ 'image': 2. png },
{ 'image': 3. png }
]
},
{
'day_id': 3,
'day_name': 'Wednsday',
'special': [
{ 'image': 1. png },
{ 'image': 2. png }
]
}
]

请帮我对给定的数组进行排序并得到如上所示的结果。

最佳答案

您可以使用哈希表将图像正确分配给日期。

可选,您可以使用 Array#reduce而不是 Array#forEach , 如果你喜欢使用紧凑的风格。

var stepsModel = [
{ 'day_id': 2, 'day_name': 'Tuesday', 'image': "1.png" },
{ 'day_id': 2, 'day_name': 'Tuesday', 'image': "2.png" },
{ 'day_id': 2, 'day_name': 'Tuesday', 'image': "3.png" },
{ 'day_id': 3, 'day_name': 'Wednsday', 'image': "1.png" },
{ 'day_id': 3, 'day_name': 'Wednsday', 'image': "2.png" }
];
var grouped = [];

stepsModel.forEach(function(a) {
if (!this[a.day_id]) {
this[a.day_id] = { day_id: a.day_id, day_name: a.day_name, special: [] };
grouped.push(this[a.day_id]);
}
this[a.day_id].special.push({ image: a.image });
}, Object.create(null));

console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何使用 Angular.js/Javascript 根据键值对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39744390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com