js 如何遍历对象的属性名,而且按照顺序输出

JavaScript012

js 如何遍历对象的属性名,而且按照顺序输出,第1张

主要有三种方式,for...in 、Object.keys(obj)、Object.getOwnPropertyNames(obj):

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>遍历对象的几种方式</title>

</head>

<body>

</body>

<script>

const obj = {

a:1,

b:true,

c:"hello"

}

//方式1:for in方式  

for(let key  in obj){

        console.log(key)

   }

//Object.keys 方式 直接返回一个数组

console.log(Object.keys(obj))

console.log(Object.getOwnPropertyNames(obj))

</script>

</html>

如果想要了解他们具体的区别的话,可以看下这篇博客JS中三种主要的遍历对象的方法:for in、Object.

根据 ECMA-262(ECMAScript)第三版中描述,for-in 语句的属性遍历的顺序是由对象定义时属性的书写顺序决定的。

在现有最新的 ECMA-262(ECMAScript)第五版规范中,对 for-in 语句的遍历机制又做了调整,属性遍历的顺序是没有被规定的。ES6的标准可能还有变化。

实际中遍历得顺序在各个浏览器无法保证一致,因此不建议用for in去遍历。不过可以考虑把for in的结果保存到数组,再把数组排个序,然后遍历这个数组去输出。

使用for...in可以遍历js对象的属性,用法如下:

for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

for (变量 in 对象)

{

//在此执行代码

}

“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

示例:

for (var sProp in window) {

alert(sProp)

}

以上例子会弹出window对象中的所有属性