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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
dwr spring的集成实现代码
Mar 22 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
Jun 28 Javascript
网站接入QQ登录的两种方法
Jul 22 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
May 23 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
通过实例学习React中事件节流防抖
Jun 17 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
vue路由的配置和页面切换详解
Sep 09 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
PHP集成FCK的函数代码
2008/09/27 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
javascript AutoScroller 函数类
2009/05/29 Javascript
javascript 写类方式之四
2009/07/05 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
微信小程序实现复选框效果
2018/12/28 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
Python制作爬虫抓取美女图
2016/01/20 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
基于Python的OCR实现示例
2020/04/03 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
卫生巾广告词
2014/03/18 职场文书
教师评语大全
2014/04/28 职场文书
社区服务活动小结
2014/07/08 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js