【发布时间】:2021-03-13 02:19:38
【问题描述】:
我找到了很多静态结构的解决方案,但没有找到动态结构的解决方案。这是一个简单的用例......
let nested = deepNest(array, ["criteria1", "criteria2", ...])
这是期望的结果...
deepNest(people, ["gender", "color"]);
// result
{
male: {
blue: {
0: {name: "Jim", color: "blue", gender: "male"},
1: {name: "Sam", color: "blue", gender: "male"}
},
green: {
0: {name: "Eddie", color: "green", gender: "male"}
}
},
female: {
blue: {
0: {name: "Eva", color: "blue", gender: "female"},
},
green: {
0: {name: "Susan", color: "green", gender: "female"}
}
}
}
...基于此数据。
const people = [
{
name: "Jim",
color: "blue",
gender: "male"
},
{
name: "Susan",
color: "green",
gender: "female"
},
{
name: "Sam",
color: "blue",
gender: "male"
},
{
name: "Eddie",
color: "green",
gender: "male"
},
{
name: "Eva",
color: "blue",
gender: "female"
}
];
请记住,分组必须是动态的,即数组可以像 deepNest(people, ["gender"]) 或 deepNest(people, ["color", "gender", "name"]) 一样嵌套
【问题讨论】:
-
你的
deepNest在哪里? -
请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于SO的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并使用
[<>]sn-p 编辑器记录输入和预期输出。 -
Stack Overflow 的一条规则是,您需要展示一次尝试,而不仅仅是说“在这里,为我做这件事”。我将为您做的是给您提示:研究使用
Array.prototype.sort()和Array.prototype.filter(),还使用字符串索引对象:window.console.log("oh wow!")与window["console"]["log"]("oh wow!")相同,诸如此类。 -
顺便问一下,这个的用例是什么?我想不出一个,但你可能确实有一个用例,因为你说它“超级有用”。 ¯\_(ツ)_/¯
标签: javascript arrays object tree