A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

let task_type_count = {"未开始":2,"已完成":3,"进行中":5}
1
1 Object.keys() 方法
**Object.keys() **  方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 语句循环遍历该对象时返回的顺序一致 。 如果对象的键 - 值都不可枚举,那么将返回由键组成的数组 。

示例:

console.log('Object.keys = ' + Object.keys(task_type_count));
1
运行结果:



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));

运行结果:



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马