在我的代码中,我有一对字符串索引的字典(这里建议)。由于这是一个即兴的类型,我想知道是否有任何建议,我将如何能够循环通过每个键(或值,所有我需要的键无论如何)。感谢任何帮助!

myDictionary: { [index: string]: any; } = {};

当前回答

获取所有字典/对象值的最短方法:

Object.keys(dict).map(k => dict[k]);

或者这样:

Object.entries(dict).map([k,v] => /* ... */);

其他回答

如果你只是在一个没有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);
}

希望这个帮手有人使用绒线。

获取所有字典/对象值的最短方法:

Object.keys(dict).map(k => dict[k]);

或者这样:

Object.entries(dict).map([k,v] => /* ... */);

这个怎么样?

for (let [key, value] of Object.entries(obj)) {
    ...
}

这是我的函数,希望对大家有所帮助

function recordToArray<TypeOfSchema>(
  data: Record<string, TypeOfSchema>
): Array<TypeOfSchema> {
  return Object.keys(data).map((key: string) => ({ id: key, ...data[key] }));
}

答案很好,但你应该使用const而不是let作为键,因为它永远不会更新。

for (const key in myDictionary) {
    let value = myDictionary[key];
    // Use `key` and `value`
}