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 继承详解 第一篇
Aug 30 Javascript
Javascript load Page,load css,load js实现代码
Mar 31 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
javascript实现回车键提交表单方法总结
Jan 10 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
PHP7新特性简述
Jun 11 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
vue中使用极验验证码的方法(附demo)
Dec 04 Javascript
vue 实现根据data中的属性值来设置不同的样式
Aug 04 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/12/23 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
javascript import css实例代码
2008/07/18 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
35个Python编程小技巧
2014/04/01 Python
python中sets模块的用法实例
2014/09/30 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
销售人才自我评价范文
2014/09/27 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
党员个人年度总结
2015/02/14 职场文书
法院个人总结
2015/03/03 职场文书
2015年采购部工作总结
2015/04/23 职场文书
采购部年度工作总结
2015/08/13 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python