1.map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

使用实例:

var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,input) {return item*10;
})
console.log(res);//-->[120,230,240,420,10];
var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,input) {return item*10;
})
console.log(res);//-->[120,230,240,420,10];

易犯错误

通常情况下,map 方法中的 callback 函数只需要接受一个参数(很多时候,自定义的函数形参只有一个),就是正在被遍历的数组元素本身。

但这并不意味着 map 只给 callback 传了一个参数(会传递3个参数)。这个思维惯性可能会让我们犯一个很容易犯的错误。

// 下面的语句返回什么呢:
["1", "2", "3"].map(parseInt);
// 你可能觉的会是[1, 2, 3]
// 但实际的结果是 [1, NaN, NaN]// 通常使用parseInt时,只需要传递一个参数.但实际上,parseInt可以有两个参数.第二个参数是进制数.可以通过语句"alert(parseInt.length)===2"来验证.
// map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身.
// 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,parseInt把传过来的索引值当成进制数来使用.

2.forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。

var data=[1,3,4] ;
var sum=0 ;
data.forEach( function (val,index,arr){
   console.log(arr[index]==val);  // ==> true
   sum+=val           
})
console.log(sum);          // ==> 8

3.标准的for循环
for(var i=1;i<array.length;i++){
    alert(array[i])
}

4.forin循环
for(var i in array){
    alert(array[i])
}

正常情况下上面两种遍历数组的方式结果一样。首先说两者的第一个区别

标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为对象。自己试试 alert(typeof i);这个区别是小问题。现在我加上如下代码,上面的执行结果就不一样了。

5.jquery中的$.each()

对比jQuery中的$.each方法:

1
2
3
$.each([], function (index, value, array) {
   // ...
});

会发现,第1个和第2个参数和foreach()正好是相反的,大家要注意了,不要记错了。

js中的遍历和jquery中的遍历相关推荐

  1. js中window.onload 与 jquery中$(document.ready()) 测试

    js中window.onload 与 jquery中$(document.ready())区别,验证代码如下(调换js代码和Jquer代码书写顺序测试,运行结果一样,因此与代码书写位置没关系): &l ...

  2. js中innerHTML和innerText jQuery中html()和text()的区别

    js中innerHTML和innerText的区别 innerHTML innerHTML  会将标签和标签中的内容否获取回来 innerHTML  .innerHTML = '<p>&l ...

  3. jquery (js中window.onload与jquery中$(document.ready())的区别)

    jquery 学习之一(js中window.onload与jquery中$(document.ready())的区别) 耳听为虚,眼见为实.通过下面的实例可查看两者的异同(注意:aa.jpg最好是一张 ...

  4. jquery中each_如何在jQuery中使用each()

    jquery中each In this post, we are going to discuss about jQuery each() method, which is one of the mo ...

  5. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  6. html中prependid的作用,jQuery中append(),prepend()与after(),before()的区别

    在jQuery中,添加元素的方法有append(),prepend和 after(),before()两种共四个.但很多人对他们的使用有点混淆,今天就来分析一下.append()和prepend()的 ...

  7. 如何在html中选择wrap,使用jQuery中的wrap()函数操作HTML元素的教程

    wrap()函数用于在每个匹配元素外部包裹指定的HTML结构. 与该函数相对的是unwrap()函数,用于当前匹配元素的父元素(只移除父元素,其内部节点全部保留). 该函数属于jQuery对象(实例) ...

  8. html中jsonp错误,解决jquery中jsonp格式跨域请求报parsererror的错误

    在vs中创建一个空的mvc项目,在Controllers文件夹中添加一个控制器CommonController,并在该控制器下添加一个action用于获取服务器时间,代码如下: public Acti ...

  9. python中的parents函数 / jQuery中的parents() 方法

    函数是在python代码中遇到的,但是查了下,说是jQurty中的一个方法(函数),就不求甚解了,一同记录下: parents()函数作用: 返回所有上级(祖先)目录列表,[上级目录, 上上级目录, ...

最新文章

  1. [Tracking] KCF + KalmanFilter目标跟踪
  2. WEB前端开发的思考与感悟
  3. python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息
  4. Struts2拦截器属性excludeMethods、includeMethods配置无效之解决方法
  5. 解决Extjs中textarea不支持keyup事件的问题
  6. python爬取qq音乐周杰伦_Python爬取20万条评论,告诉你周杰伦为啥弄崩QQ音乐?
  7. Xshell选中的同时把内容复制到剪贴板(还可以设置设置文本分隔符)
  8. Qt Creator连接Android设备
  9. [转]双线性插值(Bilinear interpolation)
  10. Java 基础数据结构介绍
  11. clickhouse安装教程
  12. 如何让div中的文字只显示一行,多余的文字隐藏并加上省略号(超链接形式)...
  13. 【COGS2652】—天文密葬法(分数规划+长链剖分)
  14. Redis开发与运维之第五章持久化
  15. 中职学校计算机课听课记录表,中职语文听课记录10篇
  16. Android代码中实现关机
  17. C语言开发环境搭建及调试
  18. ssm(Spring+SpringMVC+MyBatis)台球室内乒乓球室体育器械租赁收费系统
  19. VMware虚拟机下载及Ubuntu安装指南
  20. HDU 5855 Less Time, More profit(最大权闭合图)

热门文章

  1. 对捕金猎人的买涨买跌交易感悟?(交易基础篇)
  2. 为什么你今年的百度产品经理面试挂了?
  3. idea 模块jdk依赖总是自动变为jdk1.5
  4. 甲骨文混合云战略融合数据库技术
  5. win11打不开 浏览器
  6. nodejs:underscore模块介绍
  7. 数据流图-2(分层数据流图)
  8. 网上报修系统java源码_网上报修系统管理软件
  9. mysql命令-创建删除切换数据库登录退出mysql
  10. C++信号量实现线程间同步,windows使用SetEvent,linux使用sem_t,QT测试