lodash将一个复杂对象列表转换成map
时间: 2023-08-08 14:07:37 浏览: 53
好的,您可以使用 Lodash 库的 `keyBy()` 方法将一个复杂对象列表转换成 Map 对象:
```javascript
const _ = require('lodash');
const list = [
{ id: 1, name: '张三', age: 20 },
{ id: 2, name: '李四', age: 25 },
{ id: 3, name: '王五', age: 30 }
];
const map = _.keyBy(list, 'id');
console.log('Map 对象:', map);
```
在上面的代码中,我们使用 Lodash 库的 `keyBy()` 方法将 list 数组转换成 Map 对象。`keyBy()` 方法的第一个参数是要转换的数组,第二个参数是作为 Map 的 key 的属性名。在本例中,我们将 id 属性作为 Map 的 key,因此转换后的 Map 对象的 key 是 1、2 和 3。需要注意的是,`keyBy()` 方法返回的是一个对象,而不是一个 Map 对象,但是它的用法和 Map 对象非常相似。如果需要将返回的对象转换成 Map 对象,可以使用 `new Map()` 构造函数来创建一个新的 Map 对象:
```javascript
const _ = require('lodash');
const list = [
{ id: 1, name: '张三', age: 20 },
{ id: 2, name: '李四', age: 25 },
{ id: 3, name: '王五', age: 30 }
];
const obj = _.keyBy(list, 'id');
const map = new Map(Object.entries(obj));
console.log('Map 对象:', map);
```
在上面的代码中,我们使用 `Object.entries()` 方法将返回的对象转换成一个二维数组,然后使用 `new Map()` 构造函数将二维数组转换成 Map 对象。