`
jingwei.yang
  • 浏览: 3137 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

for/in不适合array遍历的情形

阅读更多

1、for/in将遍历从原型中继承的属性。

因此遍历数组的时候有诸多不便,需要通过以下方式保证属性是属于当前数组而不是继承来的。

 for( var i in a)
{
    if (!a.hasOwnProperty(i)) continue;
   //循环语句	
}

 

2、for/in遍历对象的时候顺序是不定的。

数组中可能有Number,String,Object等各种各样的对象,而他们的定义的时候跟index无关,所以如果数组遍历需要按照顺序,则for/in不适合。

 

总之,数组的遍历最好用for循环进行。

分享到:
评论

相关推荐

    Javascript技巧之不要用for in语句对数组进行遍历

    在大多数情况下,我们并不希望遍历到数组的原型链上的属性,特别是当数组通过某些方式(例如扩展Array原型)增加额外的属性时,for...in就会返回这些属性,导致程序行为异常。 为了说明这一问题,可以考虑jqModal这...

    JS for…in 遍历语句用法实例分析

    本文实例讲述了JS for…in 遍历语句用法。分享给大家供大家参考,具体如下: for…in 语句用于对数组或者对象的属性进行循环操作。 for (变量 in 对象) {  在此执行代码 } 这里的“变量”用来指定变量,指定的变量...

    数组Array进行原型prototype扩展后带来的for in遍历问题

    在标题中提到的“数组Array进行原型prototype扩展后带来的for in遍历问题”,指的是当开发者在`Array.prototype`上添加自定义方法后,这些方法会被视为数组实例的属性,而`for...in`循环会遍历所有可枚举的属性,...

    JavaScript中“过于”犀利地for/in循环使用示例

    在JavaScript编程语言中,`for/in`循环是一种特殊类型的循环,用于遍历对象的属性,而不仅仅是数组的索引。这个循环结构对于处理对象的属性非常有用,但如果不小心使用,可能会导致一些意外的结果,就像在提供的示例...

    javascript数组遍历for与for in区别详解

    正如描述中提到,当扩展了JavaScript的原生`Array`,比如添加了一个`test`方法到`Array.prototype`,`for...in`循环将遍历到这个额外的方法,而`for`循环则不会受到影响。这可能导致意外的结果,特别是在团队协作或...

    js实例之集合遍历字符创修改

    对于对象集合,我们通常使用`for...in`循环或`Object.keys()`配合`forEach()`来遍历属性: ```javascript let obj = {a: 1, b: 2, c: 3}; // 使用for...in遍历 for(let key in obj) { console.log(key + ": " + ...

    flex array 搜索 遍历

    在给定的标题和描述中,`flex array`、`搜索`和`遍历`是关键概念,而提供的代码段展示了如何实现这个功能。 `flex array`指的是在Flex应用中使用的数组,它与标准的AS3数组类似,但提供了更丰富的功能,例如动态...

    JavaScript中for-in遍历方式示例介绍

    与传统的`for`循环不同,`for-in`循环不适用于数字索引的连续遍历,而是主要用于处理对象的键值对。接下来,我们将详细讨论`for-in`循环的工作原理及其在遍历对象和数组时的特性。 首先,我们要明确`for-in`循环的...

    JS数组的遍历方式for循环与for…in

    JS数组的遍历方法有两种: 第一种:一般的for循环,例如: ...第一种:用for…in 这种遍历的方式,例如: var arr = new Array(first, second, third) for(var item in arr) { [removed](arr[item]+,); } 输出的结果

    JavaScript中循环遍历Array与Map的方法小结_.docx

    for...in循环用于遍历对象的所有可枚举属性,包括从原型链继承的属性。对于数组,它会遍历索引。例如: ```javascript for (var i in myArray) { console.log(i + ' - ' + myArray[i]); } ``` 这种方法不推荐...

    .遍历DOM元素

    1. 避免使用`for...in`遍历DOM,因为它会遍历对象的所有可枚举属性,包括原型链上的属性。 2. 使用`NodeList`对象时,注意其非活集合特性,即在遍历过程中,如果DOM结构发生改变,遍历结果可能不准确。 3. 优化遍历...

    Javascript中二维数组的遍历

    在上面的代码中,我们首先遍历外层数组 `array32`,然后对每个元素进行遍历。对于每个元素,我们再次遍历其内部的每个子元素。 应用场景 二维数组的遍历在实际应用中非常常见。例如,在表单处理中,我们可能需要...

    Array, Array Constructor, for in loop, typeof, instanceOf

    `for in`循环通常用于遍历对象的所有可枚举属性,但它并不适合遍历数组。原因在于`for in`会遍历整个原型链,包括数组实例和数组构造函数原型上的所有属性。这意味着除了自身的元素外,你可能还会得到意外的属性,如...

    js中的for如何实现foreach中的遍历

    如果`dicArray`实际上是一个对象(比如使用对象来模拟字典),那么使用`for...in`循环是合适的,因为我们通常不知道对象有哪些属性,而`for...in`可以遍历对象的所有可枚举属性。下面是一个正确使用`for...in`遍历...

    php遍历所有文件代码实现

    in_array($result, $exclude) && is_dir($result_dir)) { // 如果不是排除项且是目录,则递归调用 $dir[$result] = files_show($result_dir); // 存储子目录的信息 } elseif (!in_array($result, $exclude)) { // ...

    数据结构中实现图的遍历

    数据结构图的遍历class LinkedDigraph; class LinkedGraph; template <class T> class LinkedWDigraph; template <class T> class LinkedWGraph; template class LinkedBase: virtual public Network { friend ...

    Delphi新语法介绍之For In

    For In 语句可以用来遍历数组、字符串、集合、记录体等类型的数据结构。 For In 语句的基本语法为:for 变量 in 表达式 do 语句;其中,变量是要遍历的元素,表达式是要遍历的数据结构,语句是要执行的代码。 ...

    树的深度优先遍历与广度优先遍历

    在JavaScript中,可以使用`Array.prototype.shift()`和`Array.prototype.push()`方法实现队列操作。以下是一个简单的BFS实现: ```javascript function bfs(root) { const queue = [root]; while (queue.length...

Global site tag (gtag.js) - Google Analytics