我有一个 RESTful 调用,它返回类似于以下内容的数据:
[{
name: "one",
dayID: "Tuesday},
{
name: "two",
dayID: "Monday"
},
{
name: 'three'
dayID: "Tuesday
}]
我想做的是迭代数据并创建一个新数组,该数组具有基于唯一属性的嵌套结构。因此,如果数组已经有星期一,则将 json 推送到该对象。如果没有,请制作一个新的。在本例中,将所有对象嵌套在当天下,因此新数组将如下所示:
[{"Monday":["two"]}, {"Tuesday":["one", "three"]}]
实际上,这些不会是字符串,它们将是附加对象,但为了简单起见,我在示例中要求使用字符串。任何帮助表示赞赏。
最佳答案
您可以只返回对象,而不是数组,因为键是唯一的。
var data = [{
name: "one",
dayID: "Tuesday"
}, {
name: "two",
dayID: "Monday"
}, {
name: 'three',
dayID: "Tuesday"
}]
var result = data.reduce(function(r, e) {
if (!r[e.dayID]) r[e.dayID] = [e.name];
else r[e.dayID].push(e.name);
return r;
}, {})
console.log(result)
关于javascript - 如何根据子属性将 JSON 排序到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552710/