JavaScript 如何循环遍历包含多个对象的数组并访问它们的属性

JavaScript 如何循环遍历包含多个对象的数组并访问它们的属性

循环遍历元素数组非常容易,因为我们可以通过数组索引访问元素。但是对象不同,对象是一对键值对,索引对数组对象不起作用。

因此,循环遍历对象数组的过程与传统数组的循环不同。在JavaScript中,有不同的方法可以轻松访问对象的键和值,例如object.keys()、object.values()、object.entries()。

循环遍历对象数组有很多方法,让我们依次看一下:

  • 使用for…in循环
  • 使用forEach()方法
  • 使用Object.keys()方法
  • 使用object.values()方法
  • 使用object.entries()方法
  • 使用Lodash _.forEach()

方法1:使用for…in循环

可以使用for…in循环迭代对象的属性,可以使用对象的键作为索引找到对象的每个键的值。

示例:

Javascript代码

const Teachers = [
    {
        name: 'saritha',
        subject: 'Maths'
    },
    {
        name: 'ahim',
        subject: 'science'
    },
    {
        name: 'sneha',
        subject: 'Social'
    }]
 
Teachers.forEach(teacher => {
    for (let value in teacher) {
        console.log(`${teacher[value]}`)
    }
})

输出

saritha
Maths
ahim
science
sneha
Social

方法2:使用forEach()方法

arr.forEach() 方法对数组的每个元素调用一次提供的函数。提供的函数可以对给定数组的元素执行任何种类的操作。

示例:

Javascript

const arr = [{ x:1 }, { x: 2 }, { x: 3 }];
 
arr.forEach((element, index, array) => {
    console.log(element.x);    
});

输出

1
2
3

方法3:使用Object.keys()方法

JavaScript中的Object.keys()方法返回一个数组,其元素是对应可枚举属性的字符串。Object.keys()方法只返回自身属性的名称。

示例:

Javascript

const Teachers = [
    {
        name: 'saritha',
        subject: 'Maths'
    },
    {
        name: 'ahim',
        subject: 'science'
    },
    {
        name: 'sneha',
        subject: 'Social'
    }]
 
for (let teacher in Object.keys(Teachers)) {
    for (let key in Teachers[teacher]) {
        console.log(Teachers[teacher][key]);
    }
}

输出

saritha
Maths
ahim
science
sneha
Social

方法4:使用 object.values() 方法

Object.values() 方法用于返回一个数组,数组的元素是对象上找到的可枚举属性值。我们通过遍历该数组并仅获取该对象的属性。

示例:

Javascript

const Teachers = [
    {
        name: 'saritha',
        subject: 'Maths'
    },
    {
        name: 'ahim',
        subject: 'science'
    },
    {
        name: 'sneha',
        subject: 'Social'
    }]
 
for (const value of Object.values(Teachers)) {
    for (let v in value) {
        console.log(value[v]);
    }
}

输出

saritha
Maths
ahim
science
sneha
Social

方法5:使用 object.entries() 方法

JavaScript 中的 Object.entries() 方法返回一个由对象的可枚举属性[key, value]对组成的数组。我们可以使用 for..in 循环遍历该数组,只获取该对象的属性。

Javascript

const Teachers = [
    {
        name: 'saritha',
        subject: 'Maths'
    },
    {
        name: 'ahim',
        subject: 'science'
    },
    {
        name: 'sneha',
        subject: 'Social'
    }]
 
for (const entry of Object.entries(Teachers)) {
    for (let value in entry[1]) {
        console.log(entry[1][value]);
    }
}

输出

saritha
Maths
ahim
science
sneha
Social

方法6: 使用 Lodash _.forEach()

_.forEach() 方法遍历集合的元素,并对每个元素调用迭代器函数。

安装步骤:

npm i --save lodash

示例:

JavaScript

const _ = require('lodash');        // or, use lodash
 
const Teacher = [
    { name: 'Marry', age: 23 },
    { name: 'Sam', age: 20 },
    { name: 'Julie', age: 18 }
];
 
_.forEach(Teacher, (value, _) => console.log(value));

输出结果:

{ name: 'Marry', age: 23 }
{ name: 'Sam', age: 20 }
{ name: 'Julie', age: 18 }

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程