黑马程序员技术交流社区

标题: 【西安校区】说说 JavaScript 遍历对象的方法 [打印本页]

作者: 逆风TO    时间: 2019-10-15 15:15
标题: 【西安校区】说说 JavaScript 遍历对象的方法
假设需要遍历对象的具体内容为: {"未开始":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));

运行结果:








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2