JavaScript ES2015 地图中的第一项

新手上路,请多包涵

我有一个 Map 像这样:

 const m = new Map();
m.set('key1', {})
.
m.set('keyN' {})

Map 可以有 1 个或多个项目。我可以通过索引获取第一项,没有 m.get('key1') 并且没有迭代器循环吗?

像: m.get()[0]

原文由 Philip Loger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 227
2 个回答

使用 Map.prototype.entries 函数,像这样

 const m = new Map();
m.set('key1', {})
m.set('keyN', {})

console.log(m.entries().next().value); // [ 'key1', {} ]

如果你想得到第一个密钥,然后使用 Map.prototype.keys ,就像这样

console.log(m.keys().next().value); // key1


同样,如果你想获得第一个值,那么你可以使用 Map.prototype.values ,就像这样

console.log(m.values().next().value); // {}


我们必须在返回值上调用 next() 的原因是,所有这些函数都返回 迭代器在此处 阅读有关迭代协议的更多信息。

原文由 thefourtheye 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于您想知道的具体示例,解构将是完美的。

 let m = new Map();
m.set('key1', {});
m.set('key2', {});

let [[, obj]] = m;

例如

let [pair] = m;
let [key, obj] = pair;

是解构然后获取价值的一种选择,但更简单的选择是

let [obj] = m.values();

原文由 loganfsmyth 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题