ECMA5forEach
2024-04-12 11:27:38
forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环。例如下面这个例子:
[1, 2 ,3, 4].forEach(alert);
等同于下面这个for循环
1
2
3
4
|
var array = [1, 2, 3, 4];
for ( var k = 0, length = array.length; k < length; k++) {
alert(array[k]);
}
|
Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。
因此,我们有:
1
2
3
|
[].forEach( function (value, index, array) {
// ...
});
|
对比jQuery中的$.each方法:
1
2
3
|
$.each([], function (index, value, array) {
// ...
});
|
会发现,第1个和第2个参数正好是相反的,大家要注意了,不要记错了。后面类似的方法,例如$.map也是如此。
1
2
3
4
5
6
7
|
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
|
map
这里的map不是“地图”的意思,而是指“映射”。[].map(); 基本用法跟forEach方法类似:
array.map(callback,[ thisObject]);
callback的参数也类似:
1
2
3
|
[].map( function (value, index, array) {
// ...
});
|
map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组。下面这个例子是数值项求平方:
1
2
3
4
5
6
7
|
var data=[1,3,4]
var Squares=data.map( function (val,index,arr){
console.log(arr[index]==val); // ==> true
return val*val
})
console.log(Squares); // ==> [1, 9, 16]
|
注意:由于forEach、map都是ECMA5新增数组的方法,所以ie9以下的浏览器还不支持(万恶的IE啊),不过呢,可以从Array原型扩展可以实现以上全部功能,例如forEach方法:
1
2
3
4
5
|
if ( typeof Array.prototype.forEach != "function" ) {
Array.prototype.forEach = function () {
/* 实现 */
};
}
|
ECMA5forEach相关推荐
最新文章
- 构建私有云时,需要考虑的十大要点
- 一二三维矩阵的拼接问题
- 【Linux】9.ssh登录与scp文件拷贝
- mysql课程设计案例_JAVA中MySQL建立连接
- 张雪峰计算机科学与技术学什么,张雪峰看好的三大专业是什么 前景好的专业...
- 【Boost】boost库asio详解6——boost::asio::error的用法浅析
- .NET Core 2.0迁移技巧之web.config配置文件
- vue.js框架的生命周期:常用钩子函数
- aptana安装svn的方法
- AI(5)---AI知多少
- 线上python课程一般多少钱-Python在线培训课程费用是多少?值不值得报名?
- element引入的组件大小高度不对_ElementUI 在 按需引入时定义 default size?
- soem主站移植到rt thread smart操作系统
- oracle练习(mldn视频)二
- 如何使用Highscore进行XRD物相分析?
- C语言十折交叉验证,十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集...
- 网络工程师 运维工程师 面试题
- 和女性交往的一些经验总结
- 【股票】股票交易的手续费介绍以及计算
- secureCRT免密安装
热门文章
- 区块链游戏叫好不叫座,BridgeChamp能否破局?
- iframe分栏拖拽伸缩例子
- 使用命令行,批量添加定时关机计划任务
- u'string'和unicode('string')有什么区别
- onvif server端集成到BOA服务器后不定时出现closewait问题
- cdn服务器怎么登网站,服务器使用CDN服务的过程是怎样的?
- MS office二级错题记录【9】
- php反射执行方法名,PHP使用反射(ReflectionClass)调用其他类的方法
- 通过摄像头烟火监测,安全预警
- C++ Primer 第五版 课后章节练习答案 第一、二章