在我的代码中,我有一对字符串索引的字典(这里建议)。由于这是一个即兴的类型,我想知道是否有任何建议,我将如何能够循环通过每个键(或值,所有我需要的键无论如何)。感谢任何帮助!
myDictionary: { [index: string]: any; } = {};
在我的代码中,我有一对字符串索引的字典(这里建议)。由于这是一个即兴的类型,我想知道是否有任何建议,我将如何能够循环通过每个键(或值,所有我需要的键无论如何)。感谢任何帮助!
myDictionary: { [index: string]: any; } = {};
当前回答
要遍历键/值,使用for in循环:
for (let key in myDictionary) {
let value = myDictionary[key];
// Use `key` and `value`
}
其他回答
如果你只是在一个没有If语句hasOwnProperty的对象中for,那么你会从linter得到类似的错误:
for (const key in myobj) {
console.log(key);
}
WARNING in component.ts
for (... in ...) statements must be filtered with an if statement
所以解决方案是使用Object。而不是钥匙。
for (const key of Object.keys(myobj)) {
console.log(key);
}
希望这个帮手有人使用绒线。
有了es2019,这现在更简单了:
我们可以使用系统化 不再需要用Object.entries包装字典
例子:
let someMap: Map<number, number> = new Map()
someMap.set(3, 7);
someMap.set(4, 12);
for (let [key, value] of someMap) {
console.log(key, value)
}
输出:
3 7
4 12
如果你只想通过对象值进行循环,请查看object .values
要得到钥匙:
function GetDictionaryKeysAsArray(dict: {[key: string]: string;}): string[] {
let result: string[] = [];
Object.keys(dict).map((key) =>
result.push(key),
);
return result;
}
要遍历键/值,使用for in循环:
for (let key in myDictionary) {
let value = myDictionary[key];
// Use `key` and `value`
}