【发布时间】:2017-04-26 19:00:31
【问题描述】:
我想将这样的对象从:
foo = {
42: 'foo',
'a.b.c[0].42': 'bar',
'a.b.c[0].43': 'zet',
'a.d.c[0].42': 'baz'
}
收件人:
bar = {
42: 'foo',
'a.b.c[0].42': 'bar',
'a.b.c[0].43': 'zet',
'a.d.c[0].42': 'baz',
a: {
b: {
c: [{
42: 'bar', 43: 'zet'
}]
},
d: {
c: [{
42: 'baz'
}]
}
}
}
有人知道如何实现convertToTree 功能吗?
我们在我的项目中使用lodash,这样可以帮助进行基本操作。
var object = {
42: "foo",
"a.b.c[0].42": "bar",
"a.b.c[0].43": "zet",
"a.d.c[0].42": "baz"
};
function convertToTree() {
// code here
}
convertToTree(object) === {
"42": "foo",
"a.b.c[0].42": "bar",
"a.b.c[0].43": "zet",
"a.d.c[0].42": "baz",
"a": {
"b": {
"c": [
{
"42": "bar",
"43": "zet"
}
]
},
"d": {
"c": [
{
"42": "baz"
}
]
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
更新:
我需要这种转换才能在另一个代码位置进行这样的操作:
_.result(bar, 'a.b.c[0].42') === 'bar'
你可以找到_.result功能描述here。
【问题讨论】:
-
您不希望只是在树中转换您的地图。相反,您希望在地图和该地图的树版本中拥有一个对象。
-
@Bergi 谢谢。这就是我正在寻找的。span>
-
@MarioSantini 我同意标题不完全正确。
标签: javascript object underscore.js lodash