js 对象List 转Map
时间: 2024-04-29 21:21:12 浏览: 217
可以使用 JavaScript 中的 Map 对象来实现将对象列表转换为 Map。下面是一个示例代码:
```javascript
let list = [
{id: 1, name: 'John'},
{id: 2, name: 'Mary'},
{id: 3, name: 'Peter'}
];
let map = new Map();
for(let obj of list) {
map.set(obj.id, obj);
}
console.log(map);
```
输出结果:
```
Map(3) {
1 => {id: 1, name: "John"},
2 => {id: 2, name: "Mary"},
3 => {id: 3, name: "Peter"}
}
```
在上面的代码中,我们首先创建了一个对象列表 `list`,然后创建了一个新的 Map 对象 `map`。接着使用 for 循环遍历对象列表,将每个对象的 `id` 作为键,整个对象作为值,存储到 Map 中。最后输出 Map 对象,可以看到已经成功将对象列表转换为了 Map。
相关问题
js 对象List 转map
可以使用 JavaScript 中的 reduce 方法将对象列表转换为对象映射(map)。
例如,假设我们有一个对象列表,每个对象都有一个 id 和一个 name 属性:
```javascript
const list = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'Bob' },
];
```
我们可以使用 reduce 方法将其转换为一个对象映射,其中每个对象的 id 属性是键,整个对象是值:
```javascript
const map = list.reduce((acc, cur) => {
acc[cur.id] = cur;
return acc;
}, {});
```
在这里,我们使用 reduce 方法来迭代列表中的每个对象。对于每个对象,我们将其 id 作为键,整个对象作为值添加到累加器对象(acc)中。最后,我们返回累加器对象作为结果。
现在我们可以通过 id 访问对象:
```javascript
console.log(map[1]); // { id: 1, name: 'John' }
console.log(map[2]); // { id: 2, name: 'Jane' }
console.log(map[3]); // { id: 3, name: 'Bob' }
```
js 对象List 转Map 用lamda表达式实现
JavaScript中没有Map对象,但是可以用对象字面量来实现类似于Map的功能。
使用lambda表达式可以将一个对象列表转换为一个对象字面量,其中对象的属性将作为对象字面量的键,对象的值将作为对象字面量的值。
下面是一个示例代码:
```javascript
const list = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const map = list.reduce((acc, obj) => {
acc[obj.id] = obj.name;
return acc;
}, {});
console.log(map); // { 1: 'Alice', 2: 'Bob', 3: 'Charlie' }
```
在上面的代码中,reduce函数用于将对象列表转换为一个对象字面量。初始值为一个空对象{},reduce函数的回调函数将每个对象的id作为键,将每个对象的name作为值,添加到累加器对象中。最终得到一个包含所有对象的id和name的对象字面量。
阅读全文