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

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

在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]],返回所有键值对的数组,每个
相关文章
|
6天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
10天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
9天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
9天前
|
缓存 JavaScript UED
js中BOM中的方法
【10月更文挑战第31天】
|
9天前
|
JavaScript 前端开发
.js方法参数argument
【10月更文挑战第26天】`arguments` 对象为JavaScript函数提供了一种灵活处理参数的方式,能够满足各种不同的参数传递和处理需求,在实际开发中具有广泛的应用价值。
25 7
|
10天前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
JavaScript 前端开发 数据安全/隐私保护
|
JavaScript 前端开发 数据安全/隐私保护
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
95 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
118 4