说说 JavaScript 遍历对象的方法

假设需要遍历对象的具体内容为: {"未开始":2,"已完成":3,"进行中":5}

let task_type_count = {"未开始":2,"已完成":3,"进行中":5}

1 Object.keys() 方法

**Object.keys() ** 方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 语句循环遍历该对象时返回的顺序一致 。 如果对象的键 - 值都不可枚举,那么将返回由键组成的数组 。

示例:

console.log('Object.keys = ' + Object.keys(task_type_count));

运行结果:

2 for in 遍历

循环遍历对象自身和继承的可枚举属性,不含 Symbol 属性。

ES5 的对象属性名都是字符串,这容易造成属性名的冲突 。 比如,我们使用了一个他人提供的对象,但又想为这个对象添加新的方法( mixin 模式),新方法的名字就有可能与现有方法产生冲突 。 如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突 。 这就是 ES6 引入 Symbol 的原因 。

ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值 。 它是 JavaScript 语言的第七种数据类型,前六种是: undefined、null、 布尔值( Boolean ) 、 字符串( String ) 、 数值( Number ) 、 对象( Object ) 。

for (let key in task_type_count) {
    task_pie_data.push({'value': task_type_count[key], 'name': key});
}
console.log('task_pie_data = ' + JSON.stringify(task_pie_data));

运行结果:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 4,837评论 0 3
  • 本文为阮一峰大神的《ECMAScript 6 入门》的个人版提纯! babel babel负责将JS高级语法转义,...
    Devildi已被占用阅读 6,067评论 0 4
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。 上面代码表明,ES6允许在对象之中,直接写...
    oWSQo阅读 3,434评论 0 0
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 7,952评论 0 2
  • 一、属性的简介表示法 ES6允许直接写入变量和函数作为对象的属性和方法。允许在对象中只写属性名,不写属性值。这时,...
    了凡和纤风阅读 2,622评论 0 0