JS遍历数组和对象的常用方法有哪些?

简介: JS遍历数组和对象的常用方法有哪些?

在JavaScript中,遍历数组和对象的常用方法有很多。以下是一些常用的方法:

遍历数组

   for 循环:

       这是最传统的遍历数组的方法。

   javascript

var array = [1, 2, 3, 4, 5];  
for (var i = 0; i < array.length; i++) {  
    console.log(array[i]);  

}

for...of 循环

(ES6+):

   专门用于遍历可迭代对象(包括数组、Map、Set、String、TypedArray、函数的 arguments 对象等等)。

javascript

var array = [1, 2, 3, 4, 5];  
for (var item of array) {  
    console.log(item);  

}

forEach 方法:

   forEach 是数组的一个方法,用于遍历数组的每个元素。

javascript

var array = [1, 2, 3, 4, 5];  
array.forEach(function(item) {  
    console.log(item);  

});

map 方法:

   map 方法也用于遍历数组,但通常用于生成新的数组,通过函数处理每个元素。

javascript

var array = [1, 2, 3, 4, 5];  
var newArray = array.map(function(item) {  
    return item * 2;  
});  

console.log(newArray); // [2, 4, 6, 8, 10] 

filter 方法:

   filter 方法用于过滤数组中的元素,返回满足条件的元素组成的新数组。

javascript

var array = [1, 2, 3, 4, 5];  
var filteredArray = array.filter(function(item) {  
    return item > 3;  
});  

console.log(filteredArray); // [4, 5] 

reduce 方法:

   reduce 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个输出值。

javascript

var array = [1, 2, 3, 4, 5];  
var sum = array.reduce(function(accumulator, currentValue) {  
    return accumulator + currentValue;  
}, 0);  

    console.log(sum); // 15 

  some 和 every 方法:

       some 测试数组中是否至少有一个元素通过由提供的函数实现的测试。

       every 测试数组的所有元素是否都通过了由提供的函数实现的测试。


遍历对象


   for...in 循环:

       用于遍历对象的可枚举属性(包括继承的属性)。


   javascript

var obj = {a: 1, b: 2, c: 3};  
for (var key in obj) {  
    if (obj.hasOwnProperty(key)) { // 过滤掉继承的属性  
        console.log(key, obj[key]);  
    }  

} 

Object.keys() 方法:

   返回一个表示给定对象的所有可枚举属性的字符串数组(不包括继承的属性)。

javascript

var obj = {a: 1, b: 2, c: 3};  
Object.keys(obj).forEach(function(key) {  
    console.log(key, obj[key]);  

});

Object.values() 方法(ES2017+):

   返回一个给定对象自身可枚举属性的值组成的数组,其排列与使用 for...in 循环的顺序相同(两者的主要区别是 for-in 循环枚举原型链中的属性)。

javascript

var obj = {a: 1, b: 2, c: 3};  
Object.values(obj).forEach(function(value) {  
    console.log(value);  

});
相关文章
|
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编程中不可或缺的一部分。
|
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
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
81 4
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
72 4