Phi*_*ger 27 javascript dictionary ecmascript-6
我Map喜欢这样的:
const m = new Map();
m.set('key1', {})
.
m.set('keyN' {})
Run Code Online (Sandbox Code Playgroud)
在Map可以有1个或多个项目.我可以通过索引获取第一个项目,无论m.get('key1')是否有迭代器循环?
喜欢: m.get()[0]
the*_*eye 55
使用这个Map.prototype.entries功能
const m = new Map();
m.set('key1', {})
m.set('keyN', {})
console.log(m.entries().next().value); // [ 'key1', {} ]
Run Code Online (Sandbox Code Playgroud)
如果你想得到第一把钥匙,那么Map.prototype.keys就像这样使用
console.log(m.keys().next().value); // key1
Run Code Online (Sandbox Code Playgroud)
同样,如果你想获得第一个值,那么你可以Map.prototype.values像这样使用
console.log(m.values().next().value); // {}
Run Code Online (Sandbox Code Playgroud)
我们必须调用next()返回值的原因是,所有这些函数都返回迭代器.在此处阅读有关迭代协议的更多信息.
log*_*yth 11
对于您想知道的具体示例,解构将是完美的.
let m = new Map();
m.set('key1', {});
m.set('key2', {});
let [[, obj]] = m;
Run Code Online (Sandbox Code Playgroud)
例如
let [pair] = m;
let [key, obj] = pair;
Run Code Online (Sandbox Code Playgroud)
是一种去构造然后抓住价值的选择,但更简单的选择就是
let [obj] = m.values();
Run Code Online (Sandbox Code Playgroud)
小智 8
此外,这对Setand都是正确的Map:您可以将任何内容转换为Array,然后通过其索引获取任何元素。像这样的东西:
const m = new Map();
m.set('key1', {});
m.set('key2', {});
console.log(Array.from(m)[0]); // ['key1', {}]Run Code Online (Sandbox Code Playgroud)
也可以使用 ES6 和下一个版本的扩展功能来完成。让我们声明一个新的 Map 变量,然后添加两个值。之后,我们将使用...将映射转换为数组,或者您可以使用Array.fromthen 来获取仅[0]在获取的数组上使用的第一个元素。
const m = new Map();
m.set('key1', 1);
m.set('key2', 2);
console.log([...m][0]); // ['key1', 1] Run Code Online (Sandbox Code Playgroud)
或者快速通过对 javascript 数组使用 disstruct 功能,以便该[k, v]数组引用地图上的第一项。
const [[k, v]] = m;
console.log(k, v); // 'key1', 1
Run Code Online (Sandbox Code Playgroud)