返回

深入浅出,探究对象遍历七种妙法,开启JavaScript探索之旅

前端

在JavaScript中,对象是存储数据的基本结构之一。对象由属性和值组成,属性是对象的键,值是属性对应的值。对象遍历是指访问对象的所有属性和值的过程。

在JavaScript中,有很多方法可以遍历对象。以下列出了七种最常用的方法:

  1. for...in

for...in语句用于遍历对象的属性。它会依次访问对象的每个属性,并执行指定的代码块。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

for (const property in person) {
  console.log(`${property}: ${person[property]}`);
}

输出:

name: John Doe
age: 30
city: New York
  1. Object.keys(obj)

Object.keys(obj)方法返回一个包含对象所有属性名的数组。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

const keys = Object.keys(person);

console.log(keys);

输出:

['name', 'age', 'city']
  1. Object.values(obj)

Object.values(obj)方法返回一个包含对象所有属性值的数组。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

const values = Object.values(person);

console.log(values);

输出:

['John Doe', 30, 'New York']
  1. Object.entries(obj)

Object.entries(obj)方法返回一个包含对象所有属性名和属性值的数组。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

const entries = Object.entries(person);

console.log(entries);

输出:

[['name', 'John Doe'], ['age', 30], ['city', 'New York']]
  1. forEach

forEach()方法用于遍历对象的所有属性,并执行指定的回调函数。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

person.forEach((value, property) => {
  console.log(`${property}: ${value}`);
});

输出:

name: John Doe
age: 30
city: New York
  1. map

map()方法用于遍历对象的所有属性,并返回一个新的对象。新对象的属性名和属性值与原对象相同,但属性值是通过指定的映射函数计算得到的。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

const newPerson = person.map((value, property) => {
  return {
    [property]: value.toUpperCase()
  };
});

console.log(newPerson);

输出:

{
  name: 'JOHN DOE',
  age: '30',
  city: 'NEW YORK'
}
  1. reduce

reduce()方法用于遍历对象的所有属性,并返回一个累积值。累积值是通过指定的累积函数计算得到的。

const person = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

const totalAge = person.reduce((total, value) => {
  return total + value;
}, 0);

console.log(totalAge);

输出:

60

以上七种方法是JavaScript中遍历对象的最常用的方法。每种方法都有自己的特点和适用场景。您需要根据自己的需要选择合适的方法。