本文目录

Object.keys()的使用方法及数组遍历

方法一:forEach()

方法二:for()方法


Object.keys()的使用方法及数组遍历

Object.keys()用于获得由对象属性名组成的数组,可与数组遍历相结合使用,非常好用。和for...in方法功能类似,但有使用区别!

数组遍历可以用for()forEach()来实现,forEach()方法是ECMAScript5定义的遍历数组的一个新方法,按照索引的顺序挨个传递给定义的函数;

接下来就Object.keys()分别结合for()forEach()使用进行运用,用console.info()输出到控制台,代码如下:

方法一:forEach()

// 创建对象
var person = {
    name: 'hjm',
    age: 18,
    school:"SKD University",
    home: 'China'
}

// 用forEach()进行遍历
var keys = Object.keys(person).forEach(function (e) {
    console.log("person ", e, ": ", person[e]);
});

运行的结果如下图所示: 

【前端】Object.keys()的使用方法及数组遍历,Object.keys(object).forEach(e => {您的代码})_js

方法二:for()方法

// 创建一个对象
var person = {
    name: 'hjm',
    age: 18,
    school:"SKD University",
    home: 'China'
}

// 获得对象属性名组成的数组
var keys = Object.keys(person);

// 用于存储匹配的属性值
var value = [];

// 用for进行遍历
for (var i = 0,len = keys.length; i < len; i++) {
    var key = keys[i];
    value[i] = person[key];
    console.log("person ", key, ": ", value[i]);
}

运行的结果如下图所示:

【前端】Object.keys()的使用方法及数组遍历,Object.keys(object).forEach(e => {您的代码})_for循环_02

两种方法的结果是一样的,至于使用哪种方法,就智者见智,仁者见仁了。

for():用起来比较容易上手,但太罗嗦;

forEach():和相关的遍历方法结合,使得数组拥有简单而强大的函数式编程风格,更加强大。

Tips:for...in会遍历整个原型链,这可能不是你所期望的结果,然后从性能角度上看Object.keys会更优。在一些eslint的规则中也默认禁用了forin循环。

拓展: JS几种数组遍历方式总结(包括各自遍历的性能分析):JS几种数组遍历方式总结_function__的博客