JavaScript遍历对象的五种常用方式总结

 更新时间:2025年05月02日 09:03:42   作者:人才程序员  
这篇文章主要介绍了JavaScript遍历对象的五种常用方式,分别是for...in、Object.keys()+forEach()、Object.values()+forEach()、Object.entries()+forEach()和for...of+Object.entries(),文中给出了详细的代码示例,需要的朋友可以参考下

前言

大家好呀!今天我们来聊一聊如何在 JavaScript 中遍历一个对象。对象在 JavaScript 中是一个非常常见的数据类型,经常用来存储各种各样的信息。如何从中提取数据,或者对每一个属性进行操作呢?下面我们一起来看看5种常用的遍历对象的方式吧!

1. for...in 循环 

for...in 是 JavaScript 最常用的一种遍历对象属性的方式。它会遍历对象所有可枚举的属性,包括继承的属性。

例子:

const person = {
  name: "Alice",
  age: 25,
  job: "Engineer"
};

for (let key in person) {
  console.log(key, ": ", person[key]);
}

输出:

name : Alice
age : 25
job : Engineer

这里需要注意的是,for...in 会遍历对象的所有属性(包括继承来的属性)。如果不希望遍历继承的属性,我们可以加个判断:

if (person.hasOwnProperty(key)) {
  // 只遍历 person 自己的属性
}

2. Object.keys() + forEach() 组合 

如果我们只对对象的“自有属性”感兴趣,可以使用 Object.keys() 来获取所有的键(属性名),然后配合 forEach() 来遍历。

例子:

const person = {
  name: "Alice",
  age: 25,
  job: "Engineer"
};

Object.keys(person).forEach(key => {
  console.log(key, ": ", person[key]);
});

输出:

name : Alice
age : 25
job : Engineer

Object.keys() 会返回对象的键名数组,而 forEach() 是数组的方法,所以可以用它来方便地遍历每个键。

3. Object.values() + forEach() 组合 

如果你只关心对象的值,可以用 Object.values()。这个方法会返回一个数组,数组里包含对象的所有值。

例子:

const person = {
  name: "Alice",
  age: 25,
  job: "Engineer"
};

Object.values(person).forEach(value => {
  console.log(value);
});

输出:

Alice
25
Engineer

4. Object.entries() + forEach() 组合 

Object.entries() 会返回一个包含对象键值对的二维数组。你可以通过这种方式既得到属性名,又能得到属性值,特别适合需要同时操作键和值的场景。

例子:

const person = {
  name: "Alice",
  age: 25,
  job: "Engineer"
};

Object.entries(person).forEach(([key, value]) => {
  console.log(key, ": ", value);
});

输出:

name : Alice
age : 25
job : Engineer

这里 Object.entries(person) 会返回 [["name", "Alice"], ["age", 25], ["job", "Engineer"]],然后我们可以用解构语法([key, value])来方便地访问键和值。

5. for...of + Object.entries() 组合 

for...of 循环是对数组的遍历非常友好的一种方法。如果你使用 Object.entries() 得到的是一个二维数组,我们可以用 for...of 来遍历它。

例子:

const person = {
  name: "Alice",
  age: 25,
  job: "Engineer"
};

for (const [key, value] of Object.entries(person)) {
  console.log(key, ": ", value);
}

输出:

name : Alice
age : 25
job : Engineer

for...of 循环会让代码更简洁,也能够更直观地处理键值对。

总结 

  • for...in:遍历对象的所有属性,包括继承的属性,但可以通过 hasOwnProperty 排除继承的属性。
  • Object.keys():获取对象的键名数组,结合 forEach() 遍历。
  • Object.values():获取对象的值数组,结合 forEach() 遍历。
  • Object.entries():获取对象的键值对数组,结合 forEach() 或 for...of 遍历。

每种方法都有其特定的使用场景哦!你可以根据具体的需求来选择最适合的方式。希望这篇文章能帮助你更好地掌握 JavaScript 中的对象遍历!🎉

到此这篇关于JavaScript遍历对象的五种常用方式的文章就介绍到这了,更多相关JS遍历对象五种方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 下拉菜单既可以选择,又可以自己填写

    下拉菜单既可以选择,又可以自己填写

    下拉菜单既可以选择,又可以自己填写...
    2006-07-07
  • JavaScript运算符小结

    JavaScript运算符小结

    本文主要给大家详细总结了下javascript中的运算符,包括常见的算数运算符、比较运算符和逻辑运算符。十分的清晰,有需要的小伙伴可以参考下。
    2015-06-06
  • 浅析Javascript的自动分号插入(ASI)机制

    浅析Javascript的自动分号插入(ASI)机制

    我们大家都知道在写java和c时,必须要在语句后加分号,否则编译通不过。而js不同,存在自动分好插入机制,下文简称ASI。它会给源代码的 token 流自动插入分号。下面这篇文章我们就来谈谈Javascript的自动分号插入(ASI)机制。
    2016-09-09
  • js实现表格的隔行变色和上下移动

    js实现表格的隔行变色和上下移动

    这篇文章主要为大家详细介绍了js实现表格的隔行变色和上下移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • javascript自定义加载loading效果

    javascript自定义加载loading效果

    这篇文章主要为大家详细介绍了javascript自定义加载loading效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 前端实现无感刷新Token的方法与避坑指南

    前端实现无感刷新Token的方法与避坑指南

    实现token无感刷新对于前端来说是一项非常常用的技术,今天,我们就来彻底搞懂如何真正实现无感刷新Token以及为什么 90% 的实现都有致命缺陷
    2026-03-03
  • js数组与字符串常用方法总结

    js数组与字符串常用方法总结

    本文主要总结了js数组与字符串的常用方法。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • javascript FormatNumber函数实现方法

    javascript FormatNumber函数实现方法

    如果有一个数字498.8573945,如何把它格式化成两位小数据呢?用过asp的都知道,在vbscript里我们可以调用formatnumber,即用formatnumber(498.8573945,2)就可以输出:498.86。
    2008-12-12
  • JavaScript作用域链使用介绍

    JavaScript作用域链使用介绍

    作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期,在JavaScript中变量的作用域有全局作用域和局部作用域
    2013-08-08
  • 微信小程序如何修改radio和checkbox的默认样式和图标

    微信小程序如何修改radio和checkbox的默认样式和图标

    这篇文章主要介绍了微信小程序修改radio和checkbox的默认样式和图标,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论