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 相关文章推荐
Visual Studio中的jQuery智能提示设置方法
Mar 27 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
Feb 27 Javascript
webpack 插件html-webpack-plugin的具体使用
Apr 09 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
Dec 21 Javascript
JS window对象简单操作完整示例
Jan 14 Javascript
vue实现购物车列表
Jun 30 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 Javascript
正则表达式基础与常用验证表达式
Jun 16 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
预加载css或javascript的js代码
2010/04/23 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
JS中操作JSON总结
2020/12/06 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
bootstrap fileinput 上传插件的基础使用
2017/02/17 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
phpsir 开发 一个检测百度关键字网站排名的python 程序
2009/09/17 Python
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
python比较2个xml内容的方法
2015/05/11 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python查看列的唯一值方法
2018/07/17 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
关于运动会的稿件
2014/02/02 职场文书
一岗双责责任书
2014/04/15 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
使用javascript解析二维码的三种方式
2021/11/11 Javascript
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技