1. 1.数组遍历方式:
(1)for循环
for循环是最基本的遍历数组的方式,它可以根据数组的下标进行遍历。例如:
```let arr = [1, 2, 3, 4, 5]; for (let i = 0; i < arr.length; i++)
{ console.log(arr[i]); } ```
(2)forEach方法
forEach是ES5新增的方法,用于遍历数组中的每一个元素。例如:
```let arr = [1, 2, 3, 4, 5]; arr.forEach(function(item){
console.log(item); }); ```
(3)map方法
map方法也是ES5新增的方法,它可以遍历数组中的每一个元素,并返回一个新的数组。例如:
```let arr = [1, 2, 3, 4, 5]; let sumArr = arr.map(function(item){
return item + 1; }); console.log(sumArr); ```
2.对象遍历方式:
(1)for-in循环
for-in循环可以遍历对象中的每一个键值对,语法如下:
```for (const key in object) { if (object.hasOwnProperty(key)) {
console.log(object[key]); } } ```
这里要判断一下是否是对象本身的属性,因为对象原型上的属性也会被遍历。
(2)Object.keys方法
Object.keys方法可以将对象的所有属性名存放在一个数组中,然后对数组进行遍历。例如:
```let obj = {name: 'Tom', age: 18, gender: 'male'}; let keys =
Object.keys(obj); for (let i = 0; i < keys.length; i++) { let key
= keys[i]; console.log(obj[key]); } ```
(3)Object.getOwnPropertyNames方法
Object.getOwnPropertyNames方法与Object.keys方法类似,都是获取对象的属性名。但是Object.getOwnPropertyNames方法可以获取到对象中的不可枚举属性名(例如对象的constructor属性)。语法如下:
```let obj = {name: 'Tom', age: 18}; let keys =
Object.getOwnPropertyNames(obj); for (let i = 0; i < keys.length;
i++) { let key = keys[i]; console.log(obj[key]); } ```
以上是JavaScript中数组和对象遍历的一些常见方式。它们的区别在于:
1.数组一般是按照下标进行遍历,而对象一般是按照键名进行遍历。但是在ES6之后,数组也可以使用for-in遍历,而对象也可以使用for-of遍历。
2.数组的遍历中常用的方法是forEach和map,而对象的遍历中常用的方法是for-in和Object.keys/Object.getOwnPropertyNames。
3.在使用for-in遍历对象时,要注意判断属性的归属。在使用Object.getOwnPropertyNames方法时,可以获取到对象中的不可枚举属性名
```
```
```
JavaScript中数组和对象都有多种遍历方式。
于 2023-04-08 13:30:54 首次发布