javascript 之 iterable

当我们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果:

var a = ['A', 'B', 'C'];

a.name = 'Hello';

for (var x in a) {

alert(x); // '0', '1', '2', 'name'

}

for ... in循环将把name包括在内,但Array的length属性却不包括在内。

for ... of循环则完全修复了这些问题,它只循环集合本身的元素。

然而,更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:

vara = ['A','B','C'];

a.forEach(function(element, index, array){

// element: 指向当前元素的值

// index: 指向当前索引

// array: 指向Array对象本身

alert(element);

});

注意,forEach()方法是ES5.1标准引入的,你需要测试浏览器是否支持。

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

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,705评论 0 6
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,221评论 0 6
  • 关于启蒙 我的启蒙都是野路子,因为只是兴趣,并不想在上面花太多钱,所以学习费用基本是0。需要投入的就是普通的纸笔,...
    霖霖的手帐阅读 18,973评论 126 1,129
  • 我特别爱在出租车上和师傅聊天。 开出租车的大多是上了点岁数的大爷们,年轻人很少。 前些年很多出租车师傅爱聊国家大事...
    心心_幸会阅读 741评论 0 1