在JavaScript中,遍历数组和对象的常用方法有很多。以下是其中的一些:
遍历数组
1、forEach()
forEach()
方法用于对数组的每个元素执行一次给定的函数。
javascriptlet arr = [1, 2, 3, 4, 5]; arr.forEach(function(element, index) { console.log(element); // 打印当前元素的值 console.log(index); // 打印当前元素的索引 });
2、map()
map()
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。
javascriptlet arr = [1, 2, 3, 4, 5]; let newArr = arr.map(function(element) { return element * 2; // 将每个元素乘以2 }); console.log(newArr); // [2, 4, 6, 8, 10]
3、filter()
filter()
方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
javascriptlet arr = [1, 2, 3, 4, 5]; let newArr = arr.filter(function(element) { return element % 2 === 0; // 筛选出所有偶数元素 }); console.log(newArr); // [2, 4]
4、reduce()
reduce()
方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个输出值。
javascriptlet arr = [1, 2, 3, 4, 5]; let sum = arr.reduce(function(accumulator, element) { return accumulator + element; // 求和操作 }, 0); // 初始值为0,即从0开始累加 console.log(sum); // 15,即1+2+3+4+5=15
遍历对象
5、for...in
for...in
循环用于遍历可枚举的对象的属性。请注意,此方法不仅遍历自身的可枚举属性,还遍历其原型链上的属性。如果你只想遍历对象自身的属性,你可以使用hasOwnProperty()
方法来检查属性是否是对象自身的属性。
javascriptlet obj = {a: 1, b: 2, c: 3}; for (let key in obj) { if (obj.hasOwnProperty(key)) { // 检查属性是否是对象自身的属性,而不是原型链上的属性 console.log(key + ': ' + obj[key]); // 输出键和对应的值 } }
6、Object.keys() 和 Object.values() 和 Object.entries()
这三个方法可以用来遍历对象的键、值或键值对。它们返回一个数组,包含了对象的所有键、值或键值对。Object.keys()
返回一个数组,包含了对象的所有键;Object.values()
返回一个数组,包含了对象的所有值;Object.entries()
返回一个数组,包含了对象的所有键值对。这三个方法都不会遍历原型链上的属性。
javascriptlet obj = {a: 1, b: 2, c: 3}; console.log(Object.keys(obj)); // ['a', 'b', 'c'],返回所有键的数组 console.log(Object.values(obj)); // [1, 2, 3],返回所有值的数组 console.log(Object.entries(obj)); // [['a', 1], ['b', 2], ['c', 3]],返回所有键值对的数组,每个