【发布时间】:2019-03-21 10:44:18
【问题描述】:
我想从一个字符串创建一个服务树,这些字符串是人的属性。 我设法做到了,但代码很丑陋,这对我来说是一个练习之王,因为我想使用“Object.create()”来使用对象的“类”来制作它,而类会看起来像这样:
let service = {
serviceFather: "",
serviceChildren: [],
people: [],
}
};
输入样本是:
[
{
"name": "John Doe",
"service": "EE",
},
{
"name": "Jane Doe",
"service": "EE.EA",
},
{
"name": "Jack Smith",
"service": "EE.EA.EB",
},
{
"name": "Jill Smith",
"service": "EE.EA.EC"
},
{
"name": "Jake Smith",
"serviceLevel": "EE.EA.EC"
}
]
预期的输出是:
[
{
"name": "EE",
"serviceFather": "root",
"people": [
{
"name": "John Doe"
}],
"serviceChildren": [
{
"name": "EA",
"serviceFather": "EE",
"people": [
{
"name": "Jane Doe"
}],
"serviceChildren": [
{
"name": "EB",
"serviceFather": "EA",
"people": [
{
"name": "Jack Smith"
}],
"sousService": ""
},
{
"name": "EC",
"serviceFather": "EA",
"people": [
{
"name": "Jill Smith"
},
{
"name": "Jake Smith"
}],
"sousService": ""
}]
}]
}]
【问题讨论】:
-
请添加您的尝试以及出了什么问题。顺便说一句
service!==serviceLevel作为键。 -
The expected output would be为什么?这是什么逻辑? -
@JaromandaX :目标是制作一棵服务树……预期的输出看起来像一棵服务树。什么不合逻辑?
-
你能拥有多个
service: "EE"...你能拥有多个根级服务吗,例如service: "FF"?如果是这样,例如拥有EE.EA和FF.EA是否有效?最后,你自己写过一行代码吗? -
@NinaScholz 我的尝试没有让任何想法接近目标。问题是我真的不明白如何检查以这种方式创建的对象的存在。例如:让服务 = obj.service.split("."); for (让 i = 0; i
标签: javascript json object organizational-chart