KyleBlog.cn 文章 标签 关于
文章 标签 关于

JS里,for循环的for有几种写法?

严格来说共3种:forfor/infor/of。比茴香豆的茴字少一种写法。

1 经典写法

和c语言的差不多:

const fruits = ["apple", "pear", "banana", "mongo"];
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

2 for/in

for/in遍历对象的属性名,注意,是属性名,不是属性值。

一个for/in遍历对象属性的例子:

const student = {name:"jack", age:25}; 
for (let key in student) {
  console.log(key, student[key]);
}

输出:

name jack
age 25

在js里,数组也是一种对象,所以for/in语法也可以用于数组,只不过属性名都是数字(数组下标)。

一个for/in遍历数组的例子:

const students = ["jack", "tom"]; 
for (let index in students) {
  console.log(index, students[index]);
}

输出:

0 jack
1 tom

注意,上述代码里,index变量的类型是字符串,而不是数字!原因是,for/in语法中,in前面的变量本质上是对象的属性名,属性名的类型自然是字符串,只不过数组的属性名刚好对应于数字下标。

3 for/of

for/of遍历的是对象的属性值。只能遍历可迭代的对象,比如数组、字符串等。

for/of遍历数组值的例子:

const students = ["jack", "tom"]; 
for (let value of students) {
  console.log(value);
}

输出:

jack
tom

One more thing

上述3个循环都是语法层面的,其实还有一个常用的循环手段,就是Array.forEach(),它虽然不属于严格意义上的for循环,但功能和for循环很相似。

调用数组的forEach方法,并传入一个遍历函数,即可逐个处理数组里的每个元素。一个例子:

const students = ["jack", "tom"];
students.forEach(function (value, index, array) {
  console.log(index, value);
});

输出:

0 'jack'
1 'tom'

本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/js_for

发布日期:2022-08-15 联系作者