先标明参考出处: http://blog.csdn.net/codebistu/article/details/8049705

本来写过一篇有关数组新方法的(详见: [转]JavaScript函数和数组总结), 结果埋的太深找起来不方便, 在这儿专门来一篇总结下.

1. forEach

forEach(f [,o]): 此方法类似于for/in循环, 其作用是遍历整个数组并执行函数的某些操作, 但它不会遍历数组的属性. 它接受一个函数参数, 该函数可以有1,2与3个参数. 完整的三个参数分别为: 数组中的每一个值, 数组的索引, 数组本身. 这个函数没有返回值. 如:

var a = [0,1,2,3,4];
var sum = 0;
a.forEach(function(v, i, arr) {
sum += v;
console.log(arr[i]);
});

2. map

map(f [,o]): 类似于forEach()方法, 但它有返回值 --- 一个新数组, 它的参数函数必须有返回值, 参数函数的返回值作为新数组的元素. 其它用法与forEach()方法类似.

var a = [1,2,3,4,5];
var b = a.map(function(x, i, arr) {
return x*x;
}); console.log(a); // [1,2,3,4,5]
console.log(b); // [1,4,9,16,25]

3. filter

filter(f [, o]): 对数组元素进行过滤, 返回一个符合要求的新数组. 如:

var a = [1,2,3];
a[5] = 6; var b = a.filter(function(x, i, arr) {
return x !== undefined;
}); console.log(a); // [1,2,3,undefined,undefined,6]
console.log(b); // [1,2,3,6]

4. every

every(f [, o]): 有一个布尔类型的返回值, 函数参数f用来检测数组元素是否满足要求,  有且只有数组全部元素都满足f的要求 时, 才会返回true, 否则返回false.

var a = [1,3,7];
var flag = a.every(function(x, i, arr) {
return x < 5;
});
console.log(flag); // false

5. some

some(f [, o]): 与every()方法不同, 只要 有数组元素满足f的要求 就返回true, 否则返回false.

var a = [1,3,7];

var flag = a.some(function(x, i, arr) {
return x < 5;
}); console.log(flag); // true

6. reduce

reduce(f [, initial, index, array]): 对数组元素值进行计算, 返回最后一次计算的值. 函数f(x,y)接受两个参数, 如果有初始值, 则把初始值作为x计算, 然后把每一次的计算值作为下一次的x, 把数组元素依次作为y.

var a = [1,2,3,4,5];

var b = a.reduce(function(x, y) {
return x+y;
},0); // 0是初始值 console.log(b); //

7. reduceRight

reduceRight(): 与reduce()函数作用相同, 只是它从右向左依次取数组元素.

8. indexOf

indexOf(value [, start]): 根据值来找到相应在数组中的索引位置, 取多个匹配索引用最小的那个或在没有匹配的情况下返回-1.

9. lastIndexOf

lastIndexOf(value [, start]): 与indexOf()函数相似, 只是它是从后面向前面进行搜索.

ES5数组方法的更多相关文章

  1. ES5 数组方法map

    概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组. 语法 array.map(callback[, thisArg]) 参数 callback 原数组中的元素经 ...

  2. ES5 数组方法forEach

    ES6已经到了非学不可的地步了,对于ES5都不太熟的我决定是时候学习ES5了. 1.  js 数组循环遍历. 数组循环变量,最先想到的就是 for(var i=0;i<count;i++)这样的 ...

  3. ES5 数组方法every和some

    Array.prototype.every() 概述 every() 方法测试数组的所有元素是否都通过了指定函数的测试. 语法 arr.every(callback[, thisArg]) 参数 ca ...

  4. ES5 数组方法reduce

    reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值. 参数 callback 执行数组中每个值的函数,包含四个参数 previou ...

  5. 《JS权威指南学习总结--7.9 ES5中的数组方法》

    内容要点: ES5中定义了9个新的数组方法来遍历.映射.过滤.检测.简化和搜索数组. 概述:首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一个元素)调用一次该函数. 如果是稀疏数组 ...

  6. 4日6日--ES5新增数组方法

    forEach使用的函数调用,所以占内存比较大,不如定长for循环和迭代for循环 1.通过forEach将数组中的元素逐个表示出来(遍历方法,读取操作). 2.通过map将原数组中的元素进行算数运算 ...

  7. js数组定义和方法 (包含ES5新增数组方法)

    数组Array 1. 数组定义 一系列数据的集合成为数组.数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]. 2. 数组创建方式 (1) 字面量方法 ...

  8. ES5新增数组方法测试和字符串常见API测试

    首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  9. ES5新增方法(数组,字符串,对象)

    一.数组方法 迭代(遍历)方法:forEach().map().filter().some().every(): 1. array. forEach(function(value,index,arr) ...

随机推荐

  1. JavaScript引擎研究与C、C++与互调用(转)

    本文转自:ice6015的专栏.为什么有些招聘需要熟悉JS和C++,这或许就是原因. 1.  概要 JavaScript是一种广泛用于Web客户端开发的脚本语言,常用来控制浏览器的DOM树,给HTML ...

  2. 原生JavaScript拖动div兼容多种浏览器

    说句题外话,虽然博客园嵌入式氛围不行,Web前端氛围还是很好的.我又从 chinaunix 回来了. <html> <head> <script type="t ...

  3. 尚学堂 JAVA Day13 abstract 关键字

    Abstract (抽象的) 这是一个关键字. 可以且只可以 用来修饰 <类> <方法>. 1---Abstract 类 如:Animal,可以被理解一个抽象的类.动物嘛,只是 ...

  4. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  5. angularJS constant和value

    angularJS可以通过constant(name,value)和value(name,value)对于创建服务也是很重要的. 相同点是:都可以接受两个参数,name和value. 区别: 1.co ...

  6. vue-cli 中 使用vue-resource 输出后台数据

    阅读此文前,请了解vue-cli 组件如何使用  http://www.cnblogs.com/pearl07/p/6252116.html 1,mock(模拟)后台数据(新建data.Json文件) ...

  7. Web —— 小技巧集

    html中设置锚点定位3种方法(已知): 1. id 定位         <a href="#1F" name="1F">锚点1</a> ...

  8. Jemter

    1.我们需要创建批量数据 2.jemter连接数据库 3.调用外部数据 4.我要获取的值原本服务器返回的结果是:以下是左边界和右边界.提取想要的数值

  9. Linux Shell编程学习笔记

    打算在学习过程中将每个写过的程序一个个的往上贴; 2015-07-03 1. 鸟叔第三版13.2.1节“利用日期进行文件的创建” 源代码 #!/bin/bashPATH=/bin:/sbin:/usr ...

  10. C# Eval在aspx页面中的用法及作用

    Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持 ASP.NET 2.0改善了模板中的数据绑定操 ...