文档章节

5_引用类型(【二】ECMA5数组新特性)

1217528969
 1217528969
发布于 2015/02/28 16:06
字数 591
阅读 14
收藏 1
点赞 0
评论 0

对于ECMAscript5这个版本的Array新特性补充:
位置方法:indexOf    lastIndexOf

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//查找元素位置的方法 indexOf() lastIndexOf() 在查找元素时使用===符比较
//indexOf()方法参数:
//一个参数:表示在数组中查找的元素值
//两个参数: 第一个参数表示起始位置,第二个参数表示查找的元素值
var index = arr.indexOf(4);
console.info(index); // 3
var index = arr.indexOf(4, 4);
console.info(index); // 5
var index = arr.lastIndexOf(2);
console.info(index); // 7

迭代方法:every    filter    forEach    some    map

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//五个新加迭代的方法
//every filter forEach map some 所有方法都不修改原数组
//每个方法都需要传递回调函数callback,回调函数的参数有三个:
//  item:当前项
//  index:当前项的索引位置
//  array:数组本身
//every:对于数组的每一个元素进行一个函数的运算,如果每一项都返回true,最终结果返回true;
//如果有一个返回false,最终结果返回false
var result = arr.every(function(item, index, array) {
    if(item > 2){
        return true;
    }
})
console.info(result); 
//filter:对于数组的每一个元素进行一个函数的运算,把过滤后的结果返回一个新的数组
 var result = arr.filter(function(item, index, array) {
    if(item > 2){
        return true;
    }
})
console.info(result);  
//forEach:循环数组中每一项的值并执行一个方法,没有返回值
arr.forEach(function(item, index, array) {
    console.info(item);
}) 
//map:对于数组的每一个元素进行一个函数的运行,可以经过函数执行完毕后把新的结果返回
var result = arr.map(function(item, index, array) {
     return item * 2;
})
console.info(result); 
//some:对于数组每一个元素进行一个函数的运行,如果有一项返回true最终返回true;
//如果每一项都返回false,最终返回false
var result = arr.some(function(item, index, array) {
     return item >= 5;
})
console.info(result);

缩小方法:reduce    reduceRight

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//reduce reduceRight
//对数组元素值进行计算,返回最后一次计算的值。
//通过回调函数callback把数组中的值运算为一个结果值
//回调函数参数
//    pre:前一个值
//    current:当前值
//    index:索引值
//    array:数组本身
 
var result = arr.reduce(function(prev, current, index, array) {
    return prev + current;
});
console.info(result);
var result = arr.reduceRight(function(prev, current, index, array) {
    return prev + current;
});
console.info(result);

© 著作权归作者所有

共有 人打赏支持
1217528969
粉丝 1
博文 27
码字总数 14810
作品 0
济南
JS中的forEach、$.each、map方法

forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环。例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 1 var array = [1, 2, 3, 4];2 for (var k = 0, len...

胡雨生 ⋅ 2017/05/14 ⋅ 0

ES5_6_7(1)——ES5

1. ECMA简述 ECMA是脚本语言规范,是由ECMA国际组织制定和发布的脚本语言规范。而 JavaScript 就是其规范的一种实现。当然了,类似的还有其它脚本语言。但习惯性的把术语 ECMAScript 和 Java...

1160636144 ⋅ 2017/01/07 ⋅ 0

【面试笔记】js面试25题笔记

自测链接>> 在js25题、js21题或者js85题测验你的知识掌握。 js25题笔记 1. 使用 可能遇到的陷阱和解决方法 在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,...

JSAL ⋅ 2016/08/13 ⋅ 0

关注C++细节——C++11新标准之decltype的使用注意

c++11新特性——decltype decltype是C++11添加的一个新的关键字,目的是选择并返回操作数的数据类型,重要的是,在此过程中编译器分析表达式并得到它的类型,却不实际计算表达式的值。 对于内...

iaccepted ⋅ 2014/05/31 ⋅ 0

引用类型对象拷贝

1. JavaScript引用类型有哪些?非引用类型有哪些? 引用类型: 对象、数组、函数、正则表达式,指保存在堆内存中的对象,变量中保存的实际上是一个指针,这个指针指向内存中的另一个位置,由...

熊蛋子17 ⋅ 2017/12/06 ⋅ 0

ArrayList和LinkedList源码分析总结

ArrayList 1. List集合的特点:有序,元素可以重复;在集合中是不能存放基本数据类型的,只能存放其包装类型。 2. 对于任何一个集合来说,集合中存放的是对象的引用,而不是对象本身。 3. A...

u014494857 ⋅ 2017/04/13 ⋅ 0

黑马程序员_集合(上)

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! --------......

072 ⋅ 2014/07/10 ⋅ 0

Javascript数组操作(转)

1、数组的创建 var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度var arrayObj = new Array([element0[, el...

easonjim ⋅ 2016/12/27 ⋅ 0

Javascript 吐槽function

说到funciton,也是我对js非常吐槽的一点,封装的让我眼瞎,马蛋的,哥只能大眼睁着去黑盒的使用,简直只有完完全全的听各类图书对 function的道听图说,完全没有做到一点点的眼见为实。 一:...

开源oschina ⋅ 2014/12/26 ⋅ 0

Excel高级技巧

为了方便大家理解,本文并未使用 ABNF语法范式 来描述语法,这样做虽然损失了语法描述的精确性,但能让大家一目了然; 目录 内容 一、单元格 单元格是工作表中的单个元素,可容纳数值、文本或...

科研者 ⋅ 2017/11/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 29分钟前 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 1

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

CentOS开机启动subversion

建立自启动脚本: vim /etc/init.d/subversion 输入如下内容: #!/bin/bash## subversion startup script for the server## chkconfig: 2345 90 10# description: start the subve......

随风而飘 ⋅ 昨天 ⋅ 0

版本控制工具

CSV , SVN , GIT ,VSS

颖伙虫 ⋅ 昨天 ⋅ 0

【2018.06.19学习笔记】【linux高级知识 13.1-13.3】

13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

lgsxp ⋅ 昨天 ⋅ 0

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部