JS对象循环

JS对象循环

JS对象循环

在JavaScript中,对象是一种复合数据类型,可以存储包含键值对的数据。对象的键是字符串,值可以是任何类型的数据,包括数字、字符串、布尔值、数组、对象等。在实际开发中,我们经常需要遍历对象的键值对,这就需要使用循环来实现。

本文将详细介绍如何使用不同的方法循环遍历JavaScript对象,包括for…in循环、Object.keys()方法、Object.values()方法和Object.entries()方法。

1. for…in循环

for…in循环是一种遍历对象的简单方式,它可以遍历对象的所有可枚举属性,包括自身属性和继承属性。语法如下:

for (let key in obj) {
    console.log(key + ": " + obj[key]);
}

其中,key代表对象的键,obj[key]代表属性的值。下面是一个使用for…in循环遍历对象的示例:

let person = {
    name: 'Alice',
    age: 30,
    gender: 'female'
};

for (let key in person) {
    console.log(key + ": " + person[key]);
}

运行结果如下:

name: Alice
age: 30
gender: female

需要注意的是,for…in循环会遍历对象的所有可枚举属性,包括原型链上的属性。如果只想遍历对象自身的属性,可以使用hasOwnProperty()方法进行判断:

for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key + ": " + obj[key]);
    }
}

2. Object.keys()方法

Object.keys()方法返回一个包含对象所有可枚举属性名称的数组。可以结合数组的forEach()方法来遍历对象的所有键,示例如下:

let car = {
    brand: 'Toyota',
    model: 'Corolla',
    year: 2020
};

Object.keys(car).forEach(function(key) {
    console.log(key + ": " + car[key]);
});

运行结果如下:

brand: Toyota
model: Corolla
year: 2020

Object.keys()方法只返回对象自身的可枚举属性,不包括原型链上的属性。

3. Object.values()方法

Object.values()方法返回一个包含对象所有可枚举属性值的数组。可以结合数组的forEach()方法来遍历对象的所有值,示例如下:

let fruits = {
    apple: 'red',
    banana: 'yellow',
    orange: 'orange'
};

Object.values(fruits).forEach(function(value) {
    console.log(value);
});

运行结果如下:

red
yellow
orange

Object.values()方法只返回对象自身的可枚举属性的值,不包括原型链上的属性。

4. Object.entries()方法

Object.entries()方法返回一个包含对象所有可枚举属性键值对的数组。可以使用数组的forEach()方法来遍历对象的所有键值对,示例如下:

let book = {
    title: 'JavaScript Cookbook',
    author: 'Shelley Powers',
    pages: 400
};

Object.entries(book).forEach(function([key, value]) {
    console.log(key + ": " + value);
});

运行结果如下:

title: JavaScript Cookbook
author: Shelley Powers
pages: 400

Object.entries()方法会返回一个包含键值对的二维数组,可以使用解构赋值来获取键和值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程