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 相关文章推荐
js注意img图片的onerror事件的分析
Jan 01 Javascript
javascript中强制执行toString()具体实现
Apr 27 Javascript
用jquery模仿的a的title属性的例子
Oct 22 Javascript
angularJS 入门基础
Feb 09 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
Mar 30 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
Node.js静态服务器的实现方法
Feb 28 Javascript
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
15个值得收藏的JavaScript函数
Sep 15 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下载远程文件到本地存储的方法
2015/03/24 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
js中Generator函数的深入讲解
2019/04/07 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
python自动化报告的输出用例详解
2018/05/30 Python
一百行python代码将图片转成字符画
2021/02/19 Python
python配置grpc环境
2019/01/01 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
python爬虫 requests-html的使用
2020/11/30 Python
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
不错的求职信范文
2014/07/20 职场文书
高中生逃课检讨书
2014/10/10 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
锅炉工岗位职责
2015/02/13 职场文书
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS