尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

js遍历对象

js遍历对象
📅 发布时间:2026/6/21 20:25:15

js遍历对象

JavaScript 对象是由键值对组成的集合,遍历对象即逐个访问这些键值对。

常见的遍历方法包括 for...in 循环、Object.keys()、Object.values() 和 Object.entries()。

在jquery中还经常使用$.each(obj, function(idx, itm){});来进行遍历。

以下就列出常见的遍历方式:

1. for...in

let obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {console.log(key, obj[key]);
}

2. Object.keys(), Object.values(), Object.entries()

let obj = { a: 1, b: 2, c: 3 };
for (let key of Object.keys(obj)) {console.log(key);
}
for (let value of Object.values(obj)) {console.log(value);
}
for (let [key, value] of Object.entries(obj)) {console.log(key, value);
}

2.1 Object.keys()

let obj = { a: 1, b: 2, c: 3 };
for (let key of Object.keys(obj)) {console.log(key);
}

2.2 Object.values()

let obj = { a: 1, b: 2, c: 3 };
for (let value of Object.values(obj)) {console.log(value);
}

2.3 Object.entries()

let obj = { a: 1, b: 2, c: 3 };
for (let [key, value] of Object.entries(obj)) {console.log(key, value);
}

3. es6中新增的Lambda(箭头)函数

let obj = { a: 1, b: 2, c: 3 };
Object.entries(obj).forEach(([key, value]) => {console.log(key, value);
});

4. $.each

let obj = { a: 1, b: 2, c: 3 };
$.each(obj, function(key, value){console.log(key, value);});

遍历时候的注意事项

循环会遍历对象的所有可枚举属性,包括原型链上的属性。为了避免不必要的干扰,可以使用 hasOwnProperty 方法进行检查。

let obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {if (obj.hasOwnProperty(key)) {console.log(key, obj[key]);}
}

另外,在处理大型对象时,性能优化至关重要。

如使用Object.keys()、Object.values() 和 Object.entries()等方法,在创建数组时会有一定的性能开销,因此在性能敏感的场景下,for...in 循环结合 hasOwnProperty 可能是更好的选择。

再有,在某些情况下,可以通过优化逻辑避免不必要的遍历。
例如,如果只需要查找某个特定属性,可以直接使用 in 操作符或 Object.hasOwnProperty() 方法。

let obj = { a: 1, b: 2, c: 3 };
if ('a' in obj) {console.log('Property "a" exists');
}

 

骑着母猪去打猎的备忘录,如有侵权请联系本人骑着母猪去打猎删除。https://www.cnblogs.com/shichq/p/19110113

如果本文对您有所帮助,麻烦在下面评论里面随便敲上那么几下键盘,谢谢了

相关新闻

  • 入驻了爱发电
  • 奖励函数(双足)
  • 离线部署镜像仓库搭建

最新新闻

  • EL表达式注入攻防:从黑名单绕过到RCE的实战解析
  • 靠谱的汽车贴玻璃膜机构多少钱?2026年推荐 - myqiye
  • OpenClaw-ios:集成Frida与SSL Pinning绕过的iOS逆向工程工具链
  • 2026 浙江绍兴市全域彩钢瓦修缮 TOP4 权威推荐|纺织化工厂房金属屋面除锈防水喷漆企业对比 + 绍兴专属避坑指南 - 本地便民网
  • 汽车贴玻璃膜品牌费用多少?靠谱的品牌分析 - myqiye
  • DeepSeek-V4架构解析:CSA、HCA与Muon三大认知计算原语

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号