黑马程序员技术交流社区
标题:
【西安校区】说说 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
运行结果:
3.jpg
(1.7 KB, 下载次数: 6)
下载附件
2019-10-15 15:15 上传
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));
运行结果:
4.jpg
(4.06 KB, 下载次数: 18)
下载附件
2019-10-15 15:15 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2