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

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

遍历数组

for 循环:

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

javascript

var array = 1, 2, 3, 4, 5;

for (var i = 0; i < array.length; i++) {

console.log(arrayi);

}

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, objkey);

}

}

Object.keys() 方法:

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

javascript

var obj = {a: 1, b: 2, c: 3};

Object.keys(obj).forEach(function(key) {

console.log(key, objkey);

});

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);

});

相关推荐
东风破_28 分钟前
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
前端·后端·node.js
东风破_1 小时前
danci 项目(一):从需求到架构,一个单词学习系统为什么会这样设计
前端·后端·node.js
蒲公英eric1 小时前
从客户端到服务端:DVWA DOM 型 XSS 模块完整漏洞分析教程
前端·web安全·ai·xss·dvwa·ai安全
单线程_011 小时前
从案例分析 Vue3 Tokenizer+Parser 源码三
前端·javascript·vue.js
顶点多余2 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
Setsuna_F_Seiei2 小时前
前端转型 Agent 开发 03 之 Agent Tools - 给 Agent 装上手脚
前端·agent·ai编程
jay神2 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
AI情绪识别开源2 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
小磊哥er3 小时前
深入解构Claude Code - 第 8 篇 · 数据放哪、钱怎么算
javascript·ai编程