html页面遍历数组,JavaScript中利用for循环遍历数组

先看一段代码

Document

// 一个普通的数组

var arr =[3,5,2,6];

// 普通的for 循环遍历

for(var i = 0 ; i < arr.length; i++){

console.log(i,"类型:"+typeof i,arr[i]);

}

// 用for in 遍历数组

for(var k in arr){

console.log(k,"类型:"+typeof k,arr[k]);

}

这段代码显示出了 一点 for循环遍历数组 和for in 循环遍历 数组的一点区别:

4fe69ff9828c8431b2817f0afd3df234.png

标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型。

这还不是坑,只是一点区别。

再看一段代码

Document

// 一个普通的数组

var arr =[3,5,2,6];

// 在数组原型上扩展一个方法

Array.prototype.extend = function(){

console.log("在数组原型扩展一个方法");

}

// 普通的for 循环遍历

for(var i = 0 ; i < arr.length; i++){

console.log(i,"类型:"+typeof i,arr[i]);

}

// 用for in 遍历数组

for(var k in arr){

console.log(k,"类型:"+typeof k,arr[k]);

}

这段代码就是在上边的代码的基础上,为Array做了一下扩充。很简单,只是添加了一个函数。但是我们来看运行会出现了什么情况:

9b7f793087b4e63d6bc0ea27d3f21017.png

输出的结果中,多出了一行,这一行就是我们扩展的一个函数,不是我们定义在数组中的值。到此这个问题就出来了。

综上所述,用for...in...在通常情况下确实可以正确运行。

但是如果我们在项目采用的是用foreach遍历数组,假设有一天谁不小心自己为了扩展js原生的Array类,或者引入一个外部的js框架也扩展了原生Array。那问题就来了。

所以最好还是用for循环遍历数组

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值