我有一个集合,需要转换为一个对象,其中该集合的唯一值作为对象键,一个空字符串作为对象中每个元素的值。
这是我正在使用的集合:
const uom = new Set(['inches', 'centimeters', 'yards', 'meters']);
Run Code Online (Sandbox Code Playgroud)
我试过这个:
const uomObj = {...[...uom]};
console.log(uomObj);
Run Code Online (Sandbox Code Playgroud)
这会产生这样的结果:
Object {
"0": "inches",
"1": "centimeters",
"2": "yards",
"3": "meters",
}
Run Code Online (Sandbox Code Playgroud)
但这与期望的结果不符:
Object {
"inches": "",
"centimeters": "",
"yards": "",
"meters": "",
}
Run Code Online (Sandbox Code Playgroud)
这可以通过 ES6 方法实现吗?如果是这样,怎么办?
您可以使用Array.from映射函数将集合内的每个值转换为对象,然后使用Object.assign()扩展语法将对象数组合并为单个结果对象,如下所示:
const uom = new Set(['inches', 'centimeters', 'yards', 'meters']);
const res = Object.assign(...Array.from(uom, v => ({[v]:''})));
console.log(res);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5829 次 |
| 最近记录: |