对象中相同的键重新组成对象
时间: 2023-05-21 21:01:41 浏览: 83
可以使用 JavaScript 中的 reduce 方法来实现这个功能,具体代码如下:
```
const obj = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10 };
const result = Object.keys(obj).reduce((acc, key) => {
const newKey = obj[key];
if (!acc[newKey]) {
acc[newKey] = [];
}
acc[newKey].push(key);
return acc;
}, {});
console.log(result);
```
这段代码会将原始对象中相同的键重新组成一个新的对象,新对象的键是原始对象中相同的值,值是一个数组,包含了原始对象中所有的相同键。
相关问题
数组对象相同的键组成对象
的方法是什么?
你可以使用 ES6 中的 Map 对象来实现。Map 对象可以存储键值对,并且键可以是任意类型的,包括对象。因此,你可以将数组对象中相同的键作为 Map 对象的键,将对应的值作为 Map 对象的值,最终将 Map 对象转换为普通对象即可。以下是示例代码:
const arr = [{key: 'a', value: 1}, {key: 'b', value: 2}, {key: 'a', value: 3}];
const map = new Map();
arr.forEach(item => {
if (!map.has(item.key)) {
map.set(item.key, []);
}
map.get(item.key).push(item.value);
});
const result = Object.fromEntries(map.entries());
console.log(result); // {a: [1, 3], b: [2]}
JS获取对象的键
可以使用 `Object.keys()` 方法获取对象的所有键,返回一个由键组成的数组。
例如:
```javascript
const obj = {a: 1, b: 2, c: 3};
const keys = Object.keys(obj);
console.log(keys); // ["a", "b", "c"]
```
也可以使用 `for...in` 循环遍历对象的所有键。
例如:
```javascript
const obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key); // "a", "b", "c"
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)