在我的代码中,我有一对字符串索引的字典(这里建议)。由于这是一个即兴的类型,我想知道是否有任何建议,我将如何能够循环通过每个键(或值,所有我需要的键无论如何)。感谢任何帮助!
myDictionary: { [index: string]: any; } = {};
在我的代码中,我有一对字符串索引的字典(这里建议)。由于这是一个即兴的类型,我想知道是否有任何建议,我将如何能够循环通过每个键(或值,所有我需要的键无论如何)。感谢任何帮助!
myDictionary: { [index: string]: any; } = {};
当前回答
< ES 2017:
Object.keys(obj).forEach(key => {
let value = obj[key];
});
>= ES 2017:
Object.entries(obj).forEach(
([key, value]) => console.log(key, value)
);
其他回答
Ian提到的键/值循环有一个警告。如果对象可能有附加到其原型的属性,并且当您使用in操作符时,这些属性将被包括在内。因此,您需要确保键是实例的属性,而不是原型的属性。老的ie以indexof(v)显示为键而闻名。
for (const key in myDictionary) {
if (myDictionary.hasOwnProperty(key)) {
let value = myDictionary[key];
}
}
要得到钥匙:
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`
}
< ES 2017:
Object.keys(obj).forEach(key => {
let value = obj[key];
});
>= ES 2017:
Object.entries(obj).forEach(
([key, value]) => console.log(key, value)
);
这是我的函数,希望对大家有所帮助
function recordToArray<TypeOfSchema>(
data: Record<string, TypeOfSchema>
): Array<TypeOfSchema> {
return Object.keys(data).map((key: string) => ({ id: key, ...data[key] }));
}