技术文摘
前端百题斩:JS 中 9 种遍历对象的方式
2024-12-31 05:54:46 小编
前端百题斩:JS 中 9 种遍历对象的方式
在 JavaScript 中,对象是一种非常重要的数据结构。熟练掌握各种遍历对象的方式对于开发者来说至关重要。以下将详细介绍 9 种常见的遍历对象的方式。
for...in循环for...in循环会遍历对象自身的和继承的可枚举属性。需要注意的是,它遍历的是属性名而不是属性值。
const obj = {a: 1, b: 2, c: 3};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(key + ": " + obj[key]);
}
}
Object.keys()方法Object.keys()方法返回一个包含对象自身可枚举属性名称的数组。
const obj = {x: 10, y: 20, z: 30};
const keys = Object.keys(obj);
keys.forEach(key => {
console.log(key + ": " + obj[key]);
});
Object.values()方法Object.values()方法返回一个包含对象自身可枚举属性值的数组。
const obj = {name: 'John', age: 30};
const values = Object.values(obj);
values.forEach(value => {
console.log(value);
});
Object.entries()方法Object.entries()方法返回一个包含对象自身可枚举属性的键值对数组。
const obj = {fruit: 'apple', vegetable: 'carrot'};
for (const [key, value] of Object.entries(obj)) {
console.log(key + ": " + value);
}
Reflect.ownKeys()方法Reflect.ownKeys()方法返回一个包含对象自身所有属性(包括不可枚举属性)的数组。
const obj = Object.create({}, {
hiddenProperty: {
value: 'hidden',
enumerable: false
}
});
const keys = Reflect.ownKeys(obj);
console.log(keys);
JSON.stringify()与解析 通过将对象转换为 JSON 字符串,然后解析字符串来获取属性。
const obj = {city: 'New York', country: 'USA'};
const jsonStr = JSON.stringify(obj);
const parsedObj = JSON.parse(jsonStr);
for (const key in parsedObj) {
console.log(key + ": " + parsedObj[key]);
}
while循环与hasOwnProperty()方法
let key = 0;
const obj = {num1: 100, num2: 200};
while (key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(key + ": " + obj[key]);
}
key++;
}
- 使用
for...of与entries()
const obj = {book: 'JavaScript', author: 'John Doe'};
for (const [key, value] of Object.entries(obj)) {
console.log(`${key}: ${value}`);
}
- 借助
Object.getOwnPropertyNames()方法
const obj = {property1: 1, property2: 2};
const names = Object.getOwnPropertyNames(obj);
names.forEach(name => {
console.log(name + ": " + obj[name]);
});
掌握这些遍历对象的方式,能够让我们在处理对象数据时更加得心应手,提高开发效率和代码质量。
TAGS: 前端开发 技术分享 代码优化 JavaScript 基础
- Linux 中 Cron 定时执行 SQL 任务的实现流程
- K8s 中 pod 间通信的两种情形总结剖析
- Linux 软件程序的安装与管理全程
- Linux VNC 安装 ssh 后 ssh 无法登录问题的解决办法
- Linux 磁盘空间不足的高效解决办法汇总
- Nginx 转发图片无法显示问题的解决之道
- Linux 借助 HTTP 实现远程系统监控的方法
- Kibana 及 nginx 代理访问环境的部署方式
- Linux 压缩解压命令实用指南(无冗余版)
- Nginx 502 Bad Gateway 错误的详尽解决指南与实例
- Nginx、Lua 脚本与 Redis 协同实现 IP 访问频率过高自动封禁
- Linux 进程池的详细实现指南
- Linux 本地虚拟机 ping 不通问题已解决:未知名称或服务
- Linux 服务器 GLIBC 升级失败致 shell 命令无法使用的处理办法
- Linux 中 Docker-Compose 的安装流程