遍历父子对象并使用下划线构造路径值
traverse through Parent-Child objects and construct path value using underscore.js
下面有一个对象
var childitems = function(child) {
return {
id: item.id,
type: child.type,
path: child.title,
parent: child.parent,
hasChildren: true | false (based on some condition)
};
};
此外,我有一个函数,该函数根据上面对象结构的"hasChildren"answers"Parent"属性返回所有子元素,该结构再次返回数据,如子项格式。基本上,如果hasChildren为真,则该级别包含'n'个子级别。
js可以做深度观察,或者使用_之类的东西。地图可以得到所有的路径值开始从父对象到所有的子元素?所需路径的最终结果为。
父/Child1/Child11 Child111
父/Child1/Child12 Child112
(上面例子中的Child1有两个子元素child11和child12)
父/Child2/Child22 child222
父/Child2/Child22 child333
(上面例子中的Child22有两个子元素child222和child333)
我使用这样的函数,它递归地为所有键构建路径。希望能有所帮助
var getKeysFlat = function(obj) {
/* helper function to get keys of the object recursively,
e. g {foo: 42, bar {foo: 42}} will have following keys:
['foo', 'bar/foo']
*/
var result = [];
var recurse = function (obj, keyPrefix) {
if (keyPrefix !== ''){
keyPrefix = keyPrefix + '/';
}
_.each(obj, function (val, key){
if (_.isObject(val)){
recurse(val, keyPrefix + key);
} else {
result.push(keyPrefix + key);
}
});
};
recurse(obj, '');
return result;
};
console.log(getKeysFlat({
value: 2,
child1: {
child11: 3
},
child2: {
child22: {
child222: 4
}
}
}));
相关文章:
- es6 相当于下划线查找位置
- 用空格替换下划线PHP
- 如何使用下划线js转换这些数据
- 带嵌套json的下划线js查找
- 如何逃离<>在javascript下划线模板中
- TinyMCE从MSWord粘贴的文本在所有文本下加下划线
- 使用c#中的邮件附件javascript在客户端机器上获取服务器端导出的crystal报告路径.下面的
- 使用lodash下划线基于键拆分jsonarray
- 在控制台中显示下划线变量
- 如何从另一个带下划线的数组中筛选带元素的数组
- 筛选下划线中的对象
- 在键值对中对求和值进行下划线
- 使用下划线将键和值的两个数组合并到一个对象中
- 如何将文件名中的斜线替换为下划线
- 如何在结果中添加下划线但不添加虚假值的情况下进行映射
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- 如何将id数组与带下划线的对象数组嵌套属性进行比较
- 下划线-在数组中搜索匹配路径
- 遍历父子对象并使用下划线构造路径值
- 使用下划线从嵌套对象(父-子)中获取路径字段值