ECMA5数组的新增方法有哪些及forEach()模仿实现


Posted in Javascript onNovember 03, 2015

下面通过一段代码示例给大家介绍ECMA5数组的新方法forEach()模仿实现,具体代码如下所示,

var o = {
       forEach: function (callback) {
         // alert(this.length);
         for (var i = , len = this.length; i < len; i++) {
           callback && callback(this[i], i, this);
         }
       },
       get length(){
         var sum=;
         for(var n in this) {
           sum+=;
         }
         return sum;
       }
     };
     Object.defineProperty(o,"length",{enumerable:false});
     Object.defineProperty(o,"forEach",{enumerable:false});
     o[] = ;
     o[] = ;
     o[] = ;
     o.forEach(function(v,i,arr){
       arr[i]=v+;
       console.log(arr[i]+"callback");
     });

值得注意的是:

1.回调函数的使用

2.defineProperty以及defineProperties函数的意义

这两个函数都可以定义对象属性的四大特性--值,可写性,可枚举性,可配置性

下面还有点时间给大家介绍ECMA5中数组新增的几个方法如下所示:

今天在做练习的时候,偶遇fitter();以前看过这些数组的新方法,但一直没有用在实战中,趁着今天在复习一次;

forEaach()

这个方法是从头到尾遍历一个数组,然后为数组中的每个元素调用指定的函数。这个函数作为foreach的第一个参数。调用的函数可以有3个参数,分别是当前的数组元素,当前元素的索引,以及被遍历的数组,如果只有一个参数,那么这个参数就是当前的数组元素。

var data = [1,2,3,4,5] ;
// 计算数组的和
var sum = 0 ; 
data.forEach(function(value){sum += value; }); // 这里的value 分别代指 data[0~4];
console.log( sum ) // 15
// 每个数组元素自加1
data.forEach(function(v, i, a){ a[i] = v + 1; }) // v 分别代指 data[0~4]; a 代指data;
map() ;

map()方法将调用的数组的每个元素传递给制定的函数,并且返回一个数组(和调用数组的格式一模一样),塔包含改函数的返回值,注意:它必须有一个返回值,并且不会改变调用他的数组。

var a = [1,2,3];
b = a.map(function(x) { return x * x; });
filter()

这个函数的返回值是调用函数的一个子集,因为传给他的函数式用来做逻辑判断,如果为true,则把当前值推入这个要返回的子集数组中。

var getNum = function (a, b, k) {
return a.filter(function (v) {return b.indexOf(v) > -1;})[k-1];
}
var A = [3,4,5,6,7,8,9];
var B = [12,10,8,6];
console.log(getNum(A, B, 1))
console.log(getNum(A, B, 2));
every() some() ;

这两个函数的参数都是一个判定函数,对数组元素进行判断,而返回值为true或者false ;

在every()中只有当所有的数组元素调用判定函数且返回true ,其返回值才为true;有点类似&;

在some()中,只要有一个数组元素调用判定函数为true,就会返回true。

Javascript 相关文章推荐
JavaScript类和继承 constructor属性
Mar 04 Javascript
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
JavaScript实现多维数组的方法
Nov 20 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
JS实现重新加载当前页面
Nov 29 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
正则中的回溯定义与用法分析【JS与java实现】
Dec 27 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
vue日历/日程提醒/html5本地缓存功能
Sep 02 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
Nov 03 #Javascript
JS实现网页标题随机显示名人名言的方法
Nov 03 #Javascript
jQuery实用技巧必备(中)
Nov 03 #Javascript
jQuery实用技巧必备(上)
Nov 02 #Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 #Javascript
JQuery zClip插件实现复制页面内容到剪贴板
Nov 02 #Javascript
jquery实现简洁文件上传表单样式
Nov 02 #Javascript
You might like
十天学会php之第十天
2006/10/09 PHP
php类中private属性继承问题分析
2012/11/01 PHP
php计算整个目录大小的方法
2015/06/01 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
python 控制语句
2011/11/03 Python
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
Python3最长回文子串算法示例
2019/03/04 Python
python脚本后台执行方式
2019/12/21 Python
tensorflow 环境变量设置方式
2020/02/06 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
EJB实例的生命周期
2016/10/28 面试题
就业推荐自我鉴定
2013/10/06 职场文书
集团薪酬管理制度
2014/01/13 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
python实现会员管理系统
2022/03/18 Python