AngularJS / javascript - 将唯一值对象展平为简单列表
AngularJS / javascript - flatten unique values object into SIMPLE list
我有一个动态生成的、具有唯一值的多级嵌套对象。我想展平它(使用 AngularJS 或 vanilla JS)并创建一个简单的数组或每个键/值的对象。所以如果对象看起来像这样:
[
{name : "parent",
age: 21,
children: [
{ name : "child",
dob: [{
day: "01",
month: "01",
year : "82"
}],
children: [
{
name : "grandchild",
dob: [{
day: "01",
month: "01",
year : "02"
}]
}
]
}
]
}
];
展平的对象应如下所示:
"name":"parent",
"age":21,
"children.name":"child",
"children.dob.day":"01",
"children.dob.month":"01",
"children.dob.year":"82",
"children.children.name":"grandchild",
"children.children.dob.day":"01",
"children.children.dob.month":"01",
"children.children.dob.year":"02"
我找到了 2 个函数来展平一个对象,但都在每个节点旁边插入索引。 (0.children.0.children.0.dob.0.year) 这对我没有用,也没有必要,因为我的价值观是独一无二的。我需要上面的格式。您可以在此代码笔中看到我当前正在使用的功能:
https://codepen.io/anon/pen/qMXEmB
任何人都可以帮我从我的最终对象中删除那些讨厌的 "zeros" 吗?
残酷,而不是
toReturn[i + '.' + x] = flatObject[x];
您可以像这样删除 0:
let index = i === "0" ? '' : i + '.';
toReturn[index + x] = flatObject[x];
我有一个动态生成的、具有唯一值的多级嵌套对象。我想展平它(使用 AngularJS 或 vanilla JS)并创建一个简单的数组或每个键/值的对象。所以如果对象看起来像这样:
[
{name : "parent",
age: 21,
children: [
{ name : "child",
dob: [{
day: "01",
month: "01",
year : "82"
}],
children: [
{
name : "grandchild",
dob: [{
day: "01",
month: "01",
year : "02"
}]
}
]
}
]
}
];
展平的对象应如下所示:
"name":"parent",
"age":21,
"children.name":"child",
"children.dob.day":"01",
"children.dob.month":"01",
"children.dob.year":"82",
"children.children.name":"grandchild",
"children.children.dob.day":"01",
"children.children.dob.month":"01",
"children.children.dob.year":"02"
我找到了 2 个函数来展平一个对象,但都在每个节点旁边插入索引。 (0.children.0.children.0.dob.0.year) 这对我没有用,也没有必要,因为我的价值观是独一无二的。我需要上面的格式。您可以在此代码笔中看到我当前正在使用的功能: https://codepen.io/anon/pen/qMXEmB
任何人都可以帮我从我的最终对象中删除那些讨厌的 "zeros" 吗?
残酷,而不是
toReturn[i + '.' + x] = flatObject[x];
您可以像这样删除 0:
let index = i === "0" ? '' : i + '.';
toReturn[index + x] = flatObject[x];