📜  迭代字典 ts - TypeScript (1)

📅  最后修改于: 2023-12-03 15:12:20.848000             🧑  作者: Mango

迭代字典 ts - TypeScript

在 TypeScript 中,你可以使用迭代来访问字典中的所有键和值。这个过程可以使用 for-in 循环完成。

使用 for-in 循环迭代字典的键和值

下面的代码演示了如何使用 for-in 循环迭代字典的键和值:

let dict = { one: 1, two: 2, three: 3 };

for (let key in dict) {
  console.log(`Key: ${key}, Value: ${dict[key]}`);
}

这个例子会输出:

Key: one, Value: 1
Key: two, Value: 2
Key: three, Value: 3
安全地使用 for-in 循环

需要注意的是,在使用 for-in 循环时,不能保证以任何特定的顺序访问字典的键和值。此外,在遍历字典时,可能会遍历到其原型链上的属性。

为了避免这些问题,你应该使用 hasOwnProperty() 方法来判断对象是否拥有某个属性,例如:

let dict = { one: 1, two: 2, three: 3 };

for (let key in dict) {
  if (dict.hasOwnProperty(key)) {
    console.log(`Key: ${key}, Value: ${dict[key]}`);
  }
}

这个例子可以确保只输出字典中的键和值,而忽略原型链上的属性。

使用 Object.keys() 迭代字典的键

如果你只需要迭代字典中的键,你可以使用 Object.keys() 方法。这个方法会返回一个包含字典所有属性名的数组:

let dict = { one: 1, two: 2, three: 3 };

for (let key of Object.keys(dict)) {
  console.log(`Key: ${key}`);
}

这个例子会输出:

Key: one
Key: two
Key: three
使用 Object.values() 迭代字典的值

如果你只需要迭代字典中的值,你可以使用 Object.values() 方法。这个方法会返回一个包含字典所有属性值的数组:

let dict = { one: 1, two: 2, three: 3 };

for (let value of Object.values(dict)) {
  console.log(`Value: ${value}`);
}

这个例子会输出:

Value: 1
Value: 2
Value: 3
使用 Object.entries() 迭代字典的键和值

如果你需要同时迭代字典的键和值,你可以使用 Object.entries() 方法。这个方法会返回一个包含字典所有键值对的数组,每个键值对都是一个长度为 2 的数组:

let dict = { one: 1, two: 2, three: 3 };

for (let [key, value] of Object.entries(dict)) {
  console.log(`Key: ${key}, Value: ${value}`);
}

这个例子会输出:

Key: one, Value: 1
Key: two, Value: 2
Key: three, Value: 3
结论

在 TypeScript 中,你可以使用多种方式迭代字典的键和值,包括 for-in 循环、Object.keys() 方法、Object.values() 方法和 Object.entries() 方法。请注意,使用 for-in 循环时需要注意安全性,以避免原型链上的属性干扰遍历。