JavaScript遍历一个对象的所有属性

JavaScript中,许多内置数据结构(例如Array)都有默认的迭代器,可以直接使用 for...of 循环。

例如:

a = [1,2,3,4,5]

for (let el of a) {
    console.log(el);
}
// 1 2 3 4 5

但是,Object是故意不想像array一样有默认的迭代器。

不过,要想迭代一个对象的所有属性(不需要保证特定的顺序的话),可以通过Objects.keys(..)返回一个array。

let obj = {...}

for (let key of Objects.keys(obj)) {...}

迭代器:iterable,拥有next()方法。

从ES6开始,从一个iterable 中提取迭代器的方法是:iterable 必须支持一个函数,其名称是专门的ES6 符号值 Symbol.iterator。

let a = [1,2,3,4,5]
let it = a[Symbol.iterator]();

it.next().value;     // 1
it.next().value;     // 2
...

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
VirtualBool:都去逗他了?
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务