ben*_*657 150 javascript html5 typescript
在我的代码中,我有几个字典(如此处所示),它是String索引的.由于这是一个临时类型,我想知道是否有任何建议我将如何能够遍历每个键(或值,无论如何我都需要键).任何帮助赞赏!
myDictionary: { [index: string]: any; } = {};
Run Code Online (Sandbox Code Playgroud)
Ian*_*Ian 241
要遍历键/值,请使用for in
循环:
for (let key in myDictionary) {
let value = myDictionary[key];
// Use `key` and `value`
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*aul 127
@Alcesem几乎是正确的,除了该方法的好处是不需要包含__CODE__
守卫,__CODE__
因为迭代器不会进一步搜索原型链.因此,以下不仅对字典安全,而且对Typescript和Javascript中的任何类型的对象都是安全的.
<ES 2017:
Object.keys(obj).forEach(key => {
let value = obj[key];
});
Run Code Online (Sandbox Code Playgroud)
> = ES 2017:
Object.entries(obj).forEach(
([key, value]) => console.log(key, value);
);
Run Code Online (Sandbox Code Playgroud)
Rad*_*ugh 51
这个怎么样?
for (let [key, value] of Object.entries(obj)) {
...
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*rke 49
Ian提到的键/值循环有一个警告.如果对象可能具有附加到其原型的属性,并且当您使用in
运算符时,将包括这些属性.因此,您需要确保密钥是实例的属性,而不是原型的属性.较早的IE以indexof(v)
显示为关键而闻名.
for (const key in myDictionary) {
if (myDictionary.hasOwnProperty(key)) {
let value = myDictionary[key];
}
}
Run Code Online (Sandbox Code Playgroud)
k06*_*06a 13
获取所有字典/对象值的最短方法:
Object.keys(dict).map(k => dict[k]);
Run Code Online (Sandbox Code Playgroud)
或者这种方式:
Object.entries(dict).map([k,v] => /* ... */);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
223797 次 |
最近记录: |