JavaScript遍历对象的七种方法汇总

当我们需要操作 JavaScript 对象的属性时,遍历对象是非常必要的。本文总结了JavaScript遍历对象的七种方法。下面进行详细讲解:

方法一:for...in

使用 for...in 循环对象的属性。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

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

输出结果为:

name: John
age: 30
gender: male

方法二:Object.keys()

使用 Object.keys() 方法获取对象的所有属性名数组,然后使用 forEach 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

Object.keys(person).forEach(key => {
  console.log(`${key}: ${person[key]}`)
})

输出结果为:

name: John
age: 30
gender: male

方法三:Object.values()

使用 Object.values() 方法获取对象的所有属性值数组,然后使用 forEach 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

Object.values(person).forEach(value => {
  console.log(value)
})

输出结果为:

John
30
male

方法四:Object.entries()

使用 Object.entries() 方法获取对象的所有属性和属性值的键值对数组,然后使用 forEach 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

Object.entries(person).forEach(([key, value]) => {
  console.log(`${key}: ${value}`)
})

输出结果为:

name: John
age: 30
gender: male

方法五:Array.prototype.forEach()

将对象转换为键名为对象属性名,键值为对象属性值的数组,然后使用 forEach 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

Object.entries(person).map(([key, value]) => `${key}: ${value}`)
  .forEach(item => console.log(item))

输出结果为:

name: John
age: 30
gender: male

方法六:Array.prototype.map()

将对象转换为键名为对象属性名,键值为对象属性值的数组,然后使用 map 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

const result = Object.entries(person).map(([key, value]) => `${key}: ${value}`)

console.log(result)

输出结果为:

["name: John", "age: 30", "gender: male"]

方法七:Array.prototype.reduce()

将对象转换为键名为对象属性名,键值为对象属性值的数组,然后使用 reduce 循环。

const person = {
  name: 'John',
  age: 30,
  gender: 'male'
}

const result = Object.entries(person).reduce((acc, [key, value]) => {
  acc.push(`${key}: ${value}`);
  return acc;
}, []);

console.log(result);

输出结果为:

["name: John", "age: 30", "gender: male"]

示例说明:

const students = [
  { id: 1, name: 'Tom', age: 18 },
  { id: 2, name: 'Jack', age: 20 },
  { id: 3, name: 'Rose', age: 19 }
]

students.forEach(student => {
  console.log(`${student.id} ${student.name} ${student.age}`)
})

输出结果为:

1 Tom 18
2 Jack 20
3 Rose 19

另一个示例:

const book = {
  title: 'JavaScript高级程序设计',
  author: 'Nicholas',
  publisher: 'xxx出版社',
  price: 59.9
}

Object.keys(book).forEach(key => {
  console.log(`${key}: ${book[key]}`)
})

输出结果为:

title: JavaScript高级程序设计
author: Nicholas
publisher: xxx出版社
price: 59.9

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript遍历对象的七种方法汇总 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • FF IE浏览器修改标签透明度的方法

    下面是“FF IE浏览器修改标签透明度的方法”的详细讲解: 1.使用CSS属性opacity 可以使用CSS属性opacity来修改标签透明度,在FF和IE浏览器上都适用。opacity属性的值为0到1之间的浮点数。其中,0表示完全透明,1表示完全不透明。 示例1:将ID为myDiv的div标签设置为50%透明 #myDiv { opacity: 0.5; …

    JavaScript 2023年6月11日
    00
  • javascript实现原生ajax的几种方法介绍

    针对“javascript实现原生ajax的几种方法介绍”,以下是完整的攻略,共分为四个部分:介绍、XMLHttpRequest方法、fetch方法和示例说明。 介绍 AJAX是异步JavaScript和XML(Asynchronous JavaScript and XML)的缩写,是一种在无需重新加载整个页面的情况下向服务器发送请求的技术。原生AJAX(也…

    JavaScript 2023年6月11日
    00
  • 深入浅析JavaScript系列(13):This? Yes,this!

    “深入浅析JavaScript系列(13):This? Yes,this!”是一篇关于JavaScript中this关键字的详细讲解的文章。在文章中,我们可以了解到this的实际含义,常见的用法以及使用场景。 什么是this this是一个关键字,用于引用当前上下文中的对象。具体上下文是由函数的执行方式所决定的。可以在函数内部使用this来引用当前对象。th…

    JavaScript 2023年5月18日
    00
  • spring WebSocket示例详解

    下面我将详细讲解“spring WebSocket示例详解”的完整攻略。 简介 本文将详细介绍如何在 Spring 框架下使用 WebSocket。WebSocket 是一种实时通信协议,能够从客户端向服务器端推送消息,而服务器端能够主动向客户端推送消息。相比于传统的 HTTP 请求方式,WebSocket 具有实时性更强、资源占用更少等优点。 本文使用 S…

    JavaScript 2023年6月11日
    00
  • JavaScript事件处理程序(事件侦听器)

    JavaScript事件处理程序(也被称为“事件侦听器”)就是一段代码,当事件发生时会被执行。可以使用HTML中的on-属性来绑定JavaScript事件处理程序,也可以使用JavaScript中的addEventListener()方法来绑定。下面就让我们来详细讲解一下JavaScript事件处理程序的完整攻略: 什么是事件处理程序? 事件处理程序就是一段…

    JavaScript 2023年5月27日
    00
  • HTML5 script元素async、defer异步加载使用介绍

    接下来我将为你详细讲解一下“HTML5 script元素async、defer异步加载使用介绍”的完整攻略。 什么是async、defer异步加载 在HTML5中,script标签有两个属性可以实现异步加载,分别是async和defer。 async属性定义了脚本是否异步加载,异步加载的脚本不会阻塞页面的加载。 defer属性定义了脚本是否延迟执行,延迟执行…

    JavaScript 2023年5月27日
    00
  • javascript模拟C#格式化字符串

    接下来我将为你讲解javascript模拟C#格式化字符串的攻略。 首先,我们需要了解C#格式化字符串的语法,它使用了一种特殊的符号来实现占位符的替换。在C#中,占位符由一对花括号 {} 构成,占位符中可以指定参数的索引,以及可选的格式化选项。具体语法如下: string.Format("{0}的年龄是{1}岁。", name, age)…

    JavaScript 2023年5月28日
    00
  • JS中的三个循环小结

    JS中有三个循环语句:for循环、while循环和do-while循环。这三个循环语句都能够让我们方便地对数组或对象进行遍历,执行重复的操作。 1. for循环 for循环是JS中最常用的循环语句之一,能够让你重复执行一个操作多次,for循环含有三个表达式:起始表达式、终止表达式和递增表达式。 语法: for (起始表达式; 终止表达式; 递增表达式) { …

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部