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 相关文章推荐
extjs 学习笔记(一) 一些基础知识
Oct 13 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
js获取当前日期时间及其它操作汇总
Apr 17 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
Apr 10 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
php检测useragent版本示例
2014/03/24 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
php中JSON的使用与转换
2015/01/14 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
Python获取当前时间的方法
2014/01/14 Python
TensorFlow如何实现反向传播
2018/02/06 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python构造函数init实例方法解析
2020/01/19 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
宿舍违规检讨书
2014/01/12 职场文书
旅游网创业计划书
2014/01/31 职场文书
节水口号标语
2014/06/19 职场文书
领导欢送会主持词
2015/07/06 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
Python合并pdf文件的工具
2021/07/01 Python