lodash树形结构平铺
时间: 2024-10-30 12:04:41 浏览: 34
`lodash`是一个流行的JavaScript实用工具库,它提供了一系列便捷的方法处理数组、对象等数据结构。当你需要将树形结构(通常是通过对象嵌套表示的数据)转换成扁平化的数据结构时,可以使用`_.flattenDeep`或`_.mapValues`函数。
`_.flattenDeep(obj)`方法会递归地展开嵌套的对象,将所有层级的属性都展平到一个新的一维数组中。例如:
```javascript
var nestedObj = {
name: 'John',
children: [
{ age: 10 },
{ name: 'Jane', children: [{ age: 8 }] }
]
};
var flattenedObj = _.flattenDeep(nestedObj);
// 结果可能类似于:{ 'name': 'John', 'age': 10, 'children.name': 'Jane', 'children.age': 8 }
```
而`_.mapValues(obj, callback)`可以对每个值应用一个回调函数,并返回一个新的映射对象。如果想要同时处理键和值,可以结合使用:
```javascript
var flattenedObj = _.mapValues(nestedObj, function(value) {
if (_.isObject(value)) {
return _.flattenDeep(value);
}
return value;
});
```
这将把嵌套的对象变成扁平化的新对象,键保持不变,值如果是对象则展开。
阅读全文