ts遍历字符’1’到’9’。for…in 与 for…of

Zesari 发布于 2025-01-18 77 次阅读


背景

在做 37. 解数独 - 力扣(LeetCode) 时,需要对当前格子试探字符'1' - '9'

首先我想到使用`.toString`,这种方法很简洁

for (let i = 1; i <= 9; i ++) {
    console.log(i.toString())
}

问题描述

随后想起来自己之前遍历时候这样写过:

let chars: string[] = ['1', '2', '3', '4', '5', '6', '7', '8', '9']

for (let char in chars) {
    console.log(char)
}

输出结果为 `0-8`,当时好纳闷为啥这样... ...

原因

for ... in 遍历的是数组的索引,而非数组的值

修正

使用 `for ... of`

let chars: string[] = ['1', '2', '3', '4', '5', '6', '7', '8', '9']

for (let char of chars) {
    console.log(char) // 输出的是值
}

于是输出 `1-9`了,:)

Hello, It's me.
最后更新于 2025-01-21