如何使用JavaScript将数组转换为新的Map?
将二维数组转换为JavaScript Map
正确实现代码
你想要的是包含所有键值对的Map对象,之前的代码[...new Map(test)]是把Map又转回了二维数组,和原数组结构一致,所以达不到预期效果。正确写法是直接用数组初始化Map:
let test = [ ['test', true], ['test1', true], ['test2', true] ]; // 创建包含所有键值对的Map const newMapData = new Map(test);
在控制台打印newMapData时,会显示类似:Map(3) { 'test' => true, 'test1' => true, 'test2' => true },这就是你需要的完整Map结构。
如果你确实需要生成包含单个键值对的对象数组(而非Map),可以这样写:
const objArray = test.map(([key, value]) => ({ [key]: value })); // 结果:[{ 'test': true }, { 'test1': true }, { 'test2': true }]
相关文档内容翻译(原W3Schools文档节选)
JavaScript Map 支持通过二维数组直接创建。将包含键值对的二维数组传入Map构造函数,即可生成对应的Map实例。示例如下:
const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200] ]);
和普通JavaScript对象不同,Map的键可以是任意数据类型(字符串、数字、对象等),而普通对象仅支持字符串或Symbol类型作为键。
内容的提问来源于stack exchange,提问作者sisihop96
相关产品推荐
相关产品推荐

