1、js中常用的数组Array对象属性:

如图,其中用红色圆圈标记的部分,为ES5新增的属性。

2、浏览器支持情况:

  • IE:9+;
  • Chrome;
  • Firefox2+;
  • Safari 3+;
  • Opera 9.5+;

3、位置方法

ECMAScript5为数组定义了2个位置方法。indexOf(),lastIndexOf();
这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。
其中,indexOf()从数组的开头(位置0)开始向后查找,lastIndexOf()则是从数组的末尾开始向前查找。
这两个方法都要返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1;
示例:
var numbers = [,,,,,,,,];
alert(numbers.indexOf()); //
alert(number.lastIndexOf()); //
alert(number.indexOf(,)); //
alert(number.lastIndexOf(,)); //3

4、迭代方法

ECMAScript5为数组定义了5个迭代方法。

4.1、every()

定义和用法:every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。

注意: every() 不会对空数组进行检测。

注意: every() 不会改变原始数组。

描述:检测数组 ages 的所有元素是否都大于 18 :

var ages = [, , , ];
function checkAdult(age) {
return age >= ;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.every(checkAdult);
}

结果为:

false;

4.2、some()
定义和用法:some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
对数组中的每一项运行给定的函数,如果该函数对任一项都返回true,则返回true;

代码如下:

var numbers = [,,,,,,,,];
var someResult = numbers.some(function(item,index,array){//item指代数组值;index指代数组下标;array指代数组本身;
return (item>);
});
alert(someResult);

结果为:

true;

4.3、filter()

定义和用法:filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
对数组中的每一项运行给定函数,返回该函数会返回true的项的数组。
描述:要返回一个所有数值大于2的数组,代码如下:
var numbers = [,,,,,,,,];
var filterResult = numbers.filter(function(item,index,array){//item指代数组值;index指代数组下标;array指代数组本身;
return (item>);
});
alert(filterResult );

结果为:

[,,,,]

4.4、map()

定义和用法:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
对数组中的每项运行给定的函数,返回每次函数调用的结果组成的数组。
描述:给数组中的每项乘以2,返回这些乘积组成的数组,代码如下:
var numbers = [,,,,,,,,];
var mapResult = numbers.map(function(item,index,array){//item指代数组值;index指代数组下标;array指代数组本身;
return item*;
});
alert(mapResult );

结果为:

[,,,,,,,,]

4.5、forEach()

定义和用法:对数组中的每一项运行给定的函数。这个方法没有返回值。
本质上与使用for循环遍历数组一样的。代码如下:
var numbers = [,,,];
numbers.forEach(function(item,index,array){
console.log(item);
});

结果为:


5、缩小方法

ECMAScript5新增两个缩小数组的方法:reduce()和reduceRight();
这两个方法多会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。
而reduceRight()则从数组的最后一项开始,向前遍历到第一项。这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为缩小基础的初始值。
传给reduce()和reduceRight()的函数接收4个参数:前一个值,当前值,项的索引和数组对象。
描述:使用reduce()方法可以执行求数组中所有值之和的操作。代码如下:
var values  = [,,,,];
var sum =values.reduce(function(prev,cur,index,array){
return prev+cur;
});
alert(sum);

结果为:


详解javascript,ES5标准中新增的几种高效Array操作方法的更多相关文章

  1. 详解javascript,ES5标准中新增的几种高效Object操作方法

    1.Object 对象 (JavaScript) 提供对所有 JavaScript 对象通用的功能.参考网站:https://msdn.microsoft.com/zh-cn/library/kb6t ...

  2. 详解JavaScript数组过滤相同元素的5种方法

    详解JavaScript数组过滤相同元素的5种方法:https://www.jb51.net/article/114490.htm

  3. 【转】详解JavaScript中的this

    ref:http://blog.jobbole.com/39305/ 来源:foocoder 详解JavaScript中的this JavaScript中的this总是让人迷惑,应该是js众所周知的坑 ...

  4. (转载)详解Javascript中prototype属性(推荐)

    在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...

  5. 详解 javascript中offsetleft属性的用法(转)

    详解 javascript中offsetleft属性的用法 转载  2015-11-11   投稿:mrr    我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...

  6. 详解javascript中的this对象

    详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...

  7. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...

  8. 详解javascript的类

    前言 生活有度,人生添寿. 原文地址:详解javascript的类 博主博客地址:Damonare的个人博客 Javascript从当初的一个"弹窗语言",一步步发展成为现在前后端 ...

  9. 详解Javascript的继承实现(二)

    上文<详解Javascript的继承实现>介绍了一个通用的继承库,基于该库,可以快速构建带继承关系和静态成员的javascript类,好使用也好理解,额外的好处是,如果所有类都用这种库来构 ...

随机推荐

  1. List<T>保存为XML文件

    今天我们学习怎样把List<T>写成一个XML文件保存起来.因为我们在做动态网站开发时,需要对一些不太常变化的数据产生为XML文件,让程序直接去读取,而不是每次是SQL数据库取. 为了解决 ...

  2. 炉石传说 C# 开发笔记 (源代码整理公开)

    源代码已经整理过了,去除了不需要的项目. 注意:以前文章中出现过的Git已经变更过了,请以前关注过,Fork过的朋友,重新Fork一下. GitHub地址 卡牌XML文件的做成:(Git上面是没有XM ...

  3. vim 使用说明

    =========================================================本使用说明与 把VIM打造成IDE 配套======================= ...

  4. Java的堆(Heap)和栈(Stack)的区别

    Java中的堆(Heap)是一个运行时数据区,用来存放类的对象:栈(Stack)主要存放基本的数据类型(int.char.double等8种基本数据类型)和对象句柄. 例1 int a=5; int ...

  5. Eclipse下FatJar插件的安装与使用

    在Eclipse下生成jar包分很多种情况.最简单的情况是没有用到第三方jar包,那么直接Export就可以生成jar包.但是如果用到了第三方jar包,那么就比较繁琐了,很不方便.FatJar可以解决 ...

  6. MySQL知识总结

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  7. springmvc(2)Controller源码简单解析

    前面简单的分析了一下DispatcherServlet,接下来分析一下Controller,在web的MVC中,Controller就是其中的C,启动的一些页面逻辑处理,页面映射的功能: 首先看看超类 ...

  8. 第 21 章 CSS3 文本效果

    学习要点: 1.文本阴影 2.文本裁剪 3.文本描边 4.文本填充 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 中文本效果,其中也包含一些之前讲过的 CSS3 文本属性. 一.文本阴影 ...

  9. @RequestMapping映射请求

     1.SpringMVC使用@RequestMapping注解为控制器指定可以处理哪些URL请求.   2.在控制器的类定义和方法定义处都可标注@RequestMapping   2.1 类定义处:提 ...

  10. Verilog学习笔记简单功能实现(八)...............同步FIFO

    Part 1,功能定义: 用16*8 RAM实现一个同步先进先出(FIFO)队列设计.由写使能端控制该数据流的写入FIFO,并由读使能控制FIFO中数据的读出.写入和读出的操作(高电平有效)由时钟的上 ...