js遍历数组和对象的常用方法

本文详细介绍了JavaScript中遍历数组和对象的常用方法,包括forEach()、map()、filter()、reduce()以及for...in循环和Object.keys(),Object.values(),Object.entries()等,并提供了示例代码。
摘要由CSDN通过智能技术生成

在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]],返回所有键值对的数组,每个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值