📜  TypeScript不定循环(1)

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

TypeScript不定循环

在JavaScript中,我们可以使用for循环、while循环和do...while循环来对一个数据集合进行迭代。但有时我们需要对一个不确定长度的数据集合进行迭代,此时我们就需要使用不定循环。

TypeScript中有两种不定循环,分别是for...of循环和forEach()方法。下面将会对它们进行详细介绍。

for...of循环

for...of循环可以用来循环可迭代对象(如数组、Map、Set、字符串等)。与普通的for循环类似,但代码更简洁易读。

const numbers = [1, 2, 3, 4, 5];
for (const num of numbers) {
  console.log(num);
}

上述代码会输出以下内容:

1
2
3
4
5

具体来说,for...of循环每次循环都会将集合中的下一个元素赋值给定义的迭代变量(如上例的num)。因此,它可以自动跟踪数组的下标并遍历每个元素。

需要注意的是,for...of循环无法直接遍历普通对象(Object类型),因为普通对象不是一个可迭代对象。但可以使用Object.keys(obj)方法将对象转换为一个数组,再使用for...of循环遍历:

const person = { name: 'Alice', age: 30 };
for (const key of Object.keys(person)) {
  console.log(`${key}: ${person[key]}`);
}

上述代码会输出以下内容:

name: Alice
age: 30
forEach()方法

forEach()方法是数组对象的一个成员方法,用于遍历数组中的每个元素,并对每个元素执行指定的操作。语法如下:

arr.forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;

其中,callbackfn为回调函数,用于指定对每个元素执行的操作。它接收三个参数:当前元素的值、当前元素的下标(可选)、数组本身(可选)。thisArg为可选参数,用于指定回调函数中的this的值。

下面是一个简单的例子,展示如何使用forEach()方法遍历数组:

const numbers = [1, 2, 3, 4, 5];
numbers.forEach(num => console.log(num));

上述代码会输出以下内容:

1
2
3
4
5

对于需要使用当前元素的下标或数组本身的操作,可以在回调函数中分别使用indexarray参数,例如:

const numbers = [1, 2, 3, 4, 5];
numbers.forEach((num, index) => console.log(`numbers[${index}] = ${num}`));

上述代码会输出以下内容:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

需要注意的是,forEach()方法无法使用break语句来跳出循环。如果需要在迭代过程中跳出循环,可以使用some()方法或自定义的循环控制语句。