我正在尝试根据一些数据创建一个导航菜单。为此,我需要将数据处理到数组对象中。我正在尝试使用map()
进行此操作,我已经知道要制作对象的键和相应的值了,但是,我不知道如何处理相应年份下的多个标题。任何帮助将不胜感激。
const data = [
{
"fields": {
"title": "Frozen Thorns",
"year": 2017,
}
},
{
"fields": {
"title": "The Professional Years",
"year": 2018,
}
},
{
"fields": {
"title": "Green Nothing",
"year": 2018,
}
},
{
"fields": {
"title": "The Next Voyage",
"year": 2018,
}
},
{
"fields": {
"title": "Smooth Sorcerer",
"year": 2019,
}
},
{
"fields": {
"title": "Azure Star",
"year": 2019,
}
}]
const menu = Object.assign({}, ...data.map(item => ({[item.fields.year]: item.fields.title})));
// OUTPUT
// {
// 2017: "Frozen Thorns",
// 2018: "The Next Voyage",
// 2019: "Azure Star"
// }
// DESIRED OUTPUT
// {
// 2017: ["Frozen Thorns"],
// 2018: ["The Professional Years", "Green Nothing", "The Next Voyage"],
// 2019: ["Smooth Sorcerer", "Azure Star"]
// }
答案 0 :(得分:1)
一般规则是,如果要保持与原始数组相同的形状,则使用map
,但是如果要将其变成较小的形状,则使用适当命名的{{1} }。看看这个。
reduce