Javascript 具有自定义路径的Lodash_u2;.set
我试图找出如何使用lodash_u1;.setWith自定义路径。在这里给出的示例中:Javascript 具有自定义路径的Lodash_u2;.set,javascript,arrays,object,lodash,Javascript,Arrays,Object,Lodash,我试图找出如何使用lodash_u1;.setWith自定义路径。在这里给出的示例中: var arr = [ ['a'], ['a','b'], ['a','b','c'], ['a','b','c','d'], ] var object = {}; for (i = 0; i < arr.length; i++) { _.setWith(object, arr[i], {'data' : {'path': 'path', 'title': 'title'
var arr =
[
['a'],
['a','b'],
['a','b','c'],
['a','b','c','d'],
]
var object = {};
for (i = 0; i < arr.length; i++) {
_.setWith(object, arr[i], {'data' : {'path': 'path', 'title': 'title'}}, Object)
}
console.log(object)
使用定制器是否可以获得类似的内容:
{
a: {
data: {}
children: {
b: {
data: {}
children: {
c: {
data: {}
children: {
d: {
data: {}
children: {}
}
}
}
}
}
}
}
}
你想要的是有['a','children','b','children','c'] 您可以将arr转换为以下内容:
{
a: {
data: {}
b: {
data: {}
c: {
data: {}
d: {
data: {}
}
}
}
}
}
var arr =
[
['a'],
['a','children','b'],
['a','children','b','children','c'],
['a','children','b','children','c','children','d'],
]
另一种更简单的方法是将每个元素转换为字符串速记:['a','b']->'a.children.b',我在下面的示例中通过将数组与.join('.children.')连接来实现这一点
(i=0;i
_塞维思先生(
对象
arr[i].加入('.children.'),
{'data':{'path':'path','title':'title'},
对象
)
}
您可以使用
\uuzip()
和'children'
数组将'children'
添加到路径中,将结果展平,并获取除最后一项以外的所有内容
var-arr=
[
['a'],
[a',b'],
[a',b',c'],
[a'、'b'、'c'、'd'],
]
var对象={};
var children=uz.fill(新数组(arr.length),'children');//子数组的大小类似于最长路径
对于(i=0;i
for (i = 0; i < arr.length; i++) {
_.setWith(
object,
arr[i].join('.children.'),
{'data' : {'path': 'path', 'title': 'title'}},
Object
)
}