filter():  

语法:

var filteredArray = array.filter(callback[, thisObject]);

参数说明:

callback: 要对每个数组元素执行的回调函数。
thisObject : 在执行回调函数时定义的this对象。

  1. //过滤掉小于 10 的数组元素:
  2.  
  3. //代码:
  4. function isBigEnough(element, index, array) {
  5. return (element >= 10);
  6. }
  7. var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
  8. // 12, 130, 44
  9. //结果:[12, 5, 8, 130, 44].filter(isBigEnough) : 12, 130, 44

功能说明:

对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。

回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。

如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。

filter 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。

map():

  1. //将所有的数组元素转换为大写:
  2.  
  3. var strings = ["hello", "Array", "WORLD"];
  4. function makeUpperCase(v)
  5. {
  6. return v.toUpperCase();
  7. }
  8. var uppers = strings.map(makeUpperCase);
  9. // uppers is now ["HELLO", "ARRAY", "WORLD"]
  10. // strings is unchanged
  11. //结果:["hello", "Array", "WORLD"].map(makeUpperCase) : HELLO, ARRAY, WORLD

some():

对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。

  1. //检查是否有数组元素大于等于10:
  2.  
  3. function isBigEnough(element, index, array) {
  4. return (element >= 10);
  5. }
  6. var passed = [2, 5, 8, 1, 4].some(isBigEnough);
  7. // passed is false
  8. passed = [12, 5, 8, 1, 4].some(isBigEnough);
  9. // passed is true
  10. //结果:
  11. //[2, 5, 8, 1, 4].some(isBigEnough) : false
  12. //[12, 5, 8, 1, 4].some(isBigEnough) : true

every():

对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回 true ,every 将返回 true。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略

  //测试是否所有数组元素都大于等于10:
  1. function isBigEnough(element, index, array) {
  2. return (element >= 10);
  3. }
  4. var passed = [12, 5, 8, 130, 44].every(isBigEnough);
  5. // passed is false
  6. passed = [12, 54, 18, 130, 44].every(isBigEnough);
  7. // passed is true
  8. //结果:
  9. //[12, 5, 8, 130, 44].every(isBigEnough) 返回 : false
  10. //[12, 54, 18, 130, 44].every(isBigEnough) 返回 : true

forEach():

  1. //打印数组内容:
  2.  
  3. function printElt(element, index, array) {
  4. document.writeln("[" + index + "] is " + element + "<br />");
  5. }
  6. [2, 5, 9].forEach(printElt);
  7. // Prints:
  8. // [0] is 2
  9. // [1] is 5
  10. // [2] is 9
  11. //结果:
  12. //[0] is 2
  13. //[1] is 5
  14. //[2] is 9

lastIndexOf():

语法

  1. var index = array.lastIndexOf(searchElement[, fromIndex]);

参数说明

searchElement: 要搜索的元素

fromIndex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。

功能说明

比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。

  //查找符合条件的元素:

  1. var array = [2, 5, 9, 2];
  2. var index = array.lastIndexOf(2);
  3. // index is 3
  4. index = array.lastIndexOf(7);
  5. // index is -1
  6. index = array.lastIndexOf(2, 3);
  7. // index is 3
  8. index = array.lastIndexOf(2, 2);
  9. // index is 0
  10. index = array.lastIndexOf(2, -2);
  11. // index is 0
  12. index = array.lastIndexOf(2, -1);
  13. // index is 3
  14. //结果:
  15. //[2, 5, 9, 2].lastIndexOf(2) : 3
  16. //[2, 5, 9, 2].lastIndexOf(7) : -1
  17. //[2, 5, 9, 2].lastIndexOf(2, 3) : 3
  18. //[2, 5, 9, 2].lastIndexOf(2, 2) : 0
  19. //[2, 5, 9, 2].lastIndexOf(2, -2) : 0
  20. //[2, 5, 9, 2].lastIndexOf(2, -1) : 3

indexOf():

功能与lastIndexOf()一样,搜索是正向进行的

  //查找符合条件的元素:

  1. var array = [2, 5, 9];
  2. var index = array.indexOf(2);
  3. // index is 0
  4. index = array.indexOf(7);
  5. // index is -1
  6. //结果:
  7. //[2, 5, 9].indexOf(2) : 0
  8. //[2, 5, 9].indexOf(7) : -1

  

Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()的更多相关文章

  1. JS数组filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()实例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  2. javascript数组详解(js数组深度解析)【forEach(),every(),map(),filter(),reduce()】

    Array 对象是一个复合类型,用于在单个的变量中存储多个值,每个值类型可以不同. 创建数组对象的方法: new Array(); new Array(size); new Array(element ...

  3. Js数组的map,filter,reduce,every,some方法

    var arr=[1,2,3,4,5,6]; res = arr.map(function(x){return x*x}) [1, 4, 9, 16, 25, 36] res = arr.filter ...

  4. js数组 函数

    js数组 filter(),map(),some(),every(),forEach(),lastIndexOf(),indexOf() 文章1:http://www.jb51.net/article ...

  5. MyBatis传入参数为list、数组、map写法(转载)

    MyBatis传入参数为list.数组.map写法 1.foreach简单介绍: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有item ...

  6. js数组中indexOf/filter/forEach/map/reduce详解

    今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array. ...

  7. 原生JS数组操作的6个函数 arr.forEach arr.map arr.filter arr.some arr.every arr.findIndex

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()

    ECMA Script5中数组方法如indexOf().forEach().map().filter().some()并不支持IE6-8,但是国内依然有一大部分用户使用IE6-8,而以上数组方法又确实 ...

  9. JS中的 map, filter, some, every, forEach, for in, for of 用法总结和区别

    JS中的 map, filter, some, every, forEach, for in, for of 用法总结和区别  :https://blog.csdn.net/hyupeng1006/a ...

随机推荐

  1. STL源码分析读书笔记--第5章--关联式容器

    1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是 ...

  2. 【转】从零开始编写自己的C#框架(7)——需求分析

    转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...

  3. deep learning 的java库

    deepLearning4j: https://github.com/deeplearning4j/libnd4j/issues/208                       deepLearn ...

  4. ntpd和ntpdate

    以无GUI 的Ubuntu 为例 1. ntpdate ntpdate是Ubuntu发行版的标配.按Ubuntu14.04的官方文档(这里),Ubuntu在启动时,会调用ntpdate,根据Ubunt ...

  5. 二、 C#调用存储过程

    个人比较喜欢使用第二种传递参数的方法 1. 调用的方法 public DataTable ExceStoredProcedure (string strCom, SqlParameter[] comm ...

  6. PyQt多窗口调用

    经常有人问到如何在一个主窗口中打开一个对话框,然后在确认对话框之后,开启另一个窗口进行后续操作,要求主窗口和最终的窗口之间都能响应用户操作,也就是非模态窗口.随手写了几行代码,简要示意. :::pyt ...

  7. CodeForces 711B Chris and Magic Square (暴力,水题)

    题意:给定n*n个矩阵,其中只有一个格子是0,让你填上一个数,使得所有的行列的对角线的和都相等. 析:首先n为1,就随便填,然后就是除了0这一行或者这一列,那么一定有其他的行列是完整的,所以,先把其他 ...

  8. 关于IE开发人员工具(F12)找不到的问题

    关于IE开发人员工具(F12)找不到的问题 解决方案:第一步,像往常一样F12或者,工具->开发人员工具,点击后,这个时候你是看不到工具界面(当然,如果你正好遇到了找不到这个问题);第二步,这个 ...

  9. C++100款开源界面库[转]

    (声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...

  10. ActionBar ShareActionProvider

    添加share按钮 添加share按钮的主要步骤: 1. 在ActionBar中添加share按钮 2. 从item中获取ShareActionProvider ShareActionProvider ...