在 JavaScript 中,对象是一种重要的数据结构,用于储存和组织数据。对象由键值对组成,其中键名用于查找值。但有时候,我们所知道的只是对象中的某个值,需要找到对应的键名。举个简单的例子:
1 | const person = { |
这里我们有一个 person 对象,包含三个键值对。如果我知道这个人的年龄是 30,但不知道对应键名,我该如何获取呢?
为了在 JavaScript 对象中灵活查找键和值,我们需要了解几种遍历对象的方法。
- 获取键和值:Object.keys() 方法返回一个数组,包含对象的所有键名。
Object.values() 方法返回一个数组,包含对象的所有值。使用这两个方法,我们可以轻松获取对象的所有键和值。例如:
1 | const person = { |
- 对象遍历:对象遍历指的是迭代对象的属性并访问其键值。主要有以下几种方式:
for..in 遍历键:1
2
3
4
5
6
7
8
9
10
11
12const person = {
name: 'John',
age: 30,
city: 'New York'
}
for (let key in person) {
console.log(key, person[key]);
}
// name John
// age 30
// city New York
for..of 遍历值:
1 | for (let value of Object.values(person)) { |
Object.entries() 遍历键值对:
1 | for (let [key, value] of Object.entries(person)) { |
- 根据值获取键:
Object.entries() + Array.find():通过 Array.find() 直接找到第一个符合条件的键值对,返回键。
1 | const obj = { a: 1, b: 2, c: 1 }; |
Object.entries():返回对象所有键值对的数组,然后你可以迭代检查每个键值对,找到你要的键。
1 | const obj = { a: 1, b: 2, c: 1 }; |
Object.keys():返回对象所有的键,然后你可以迭代检查每个键对应的值,找到你要的键。
1 | const obj = { a: 1, b: 2, c: 1 }; |
以上三种方法根据对象的值查找对应的键名。 Object.entries() + Array.find() 方法性能最高,其余两种方法性能稍差。