Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()
filter():
语法:
var
filteredArray = array.filter(callback[, thisObject]);
参数说明:
callback: 要对每个数组元素执行的回调函数。
thisObject : 在执行回调函数时定义的this对象。
- //过滤掉小于 10 的数组元素:
- //代码:
- function isBigEnough(element, index, array) {
- return (element >= 10);
- }
- var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
- // 12, 130, 44
- //结果:[12, 5, 8, 130, 44].filter(isBigEnough) : 12, 130, 44
功能说明:
对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。
回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。
filter 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。
map():
- //将所有的数组元素转换为大写:
- var strings = ["hello", "Array", "WORLD"];
- function makeUpperCase(v)
- {
- return v.toUpperCase();
- }
- var uppers = strings.map(makeUpperCase);
- // uppers is now ["HELLO", "ARRAY", "WORLD"]
- // strings is unchanged
- //结果:["hello", "Array", "WORLD"].map(makeUpperCase) : HELLO, ARRAY, WORLD
some():
对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。
- //检查是否有数组元素大于等于10:
- function isBigEnough(element, index, array) {
- return (element >= 10);
- }
- var passed = [2, 5, 8, 1, 4].some(isBigEnough);
- // passed is false
- passed = [12, 5, 8, 1, 4].some(isBigEnough);
- // passed is true
- //结果:
- //[2, 5, 8, 1, 4].some(isBigEnough) : false
- //[12, 5, 8, 1, 4].some(isBigEnough) : true
every():
对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回 true ,every 将返回 true。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略
- function isBigEnough(element, index, array) {
- return (element >= 10);
- }
- var passed = [12, 5, 8, 130, 44].every(isBigEnough);
- // passed is false
- passed = [12, 54, 18, 130, 44].every(isBigEnough);
- // passed is true
- //结果:
- //[12, 5, 8, 130, 44].every(isBigEnough) 返回 : false
- //[12, 54, 18, 130, 44].every(isBigEnough) 返回 : true
forEach():
- //打印数组内容:
- function printElt(element, index, array) {
- document.writeln("[" + index + "] is " + element + "<br />");
- }
- [2, 5, 9].forEach(printElt);
- // Prints:
- // [0] is 2
- // [1] is 5
- // [2] is 9
- //结果:
- //[0] is 2
- //[1] is 5
- //[2] is 9
lastIndexOf():
语法
- var index = array.lastIndexOf(searchElement[, fromIndex]);
参数说明
searchElement: 要搜索的元素
fromIndex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。
功能说明
比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。
- var array = [2, 5, 9, 2];
- var index = array.lastIndexOf(2);
- // index is 3
- index = array.lastIndexOf(7);
- // index is -1
- index = array.lastIndexOf(2, 3);
- // index is 3
- index = array.lastIndexOf(2, 2);
- // index is 0
- index = array.lastIndexOf(2, -2);
- // index is 0
- index = array.lastIndexOf(2, -1);
- // index is 3
- //结果:
- //[2, 5, 9, 2].lastIndexOf(2) : 3
- //[2, 5, 9, 2].lastIndexOf(7) : -1
- //[2, 5, 9, 2].lastIndexOf(2, 3) : 3
- //[2, 5, 9, 2].lastIndexOf(2, 2) : 0
- //[2, 5, 9, 2].lastIndexOf(2, -2) : 0
- //[2, 5, 9, 2].lastIndexOf(2, -1) : 3
indexOf():
功能与lastIndexOf()一样,搜索是正向进行的
- var array = [2, 5, 9];
- var index = array.indexOf(2);
- // index is 0
- index = array.indexOf(7);
- // index is -1
- //结果:
- //[2, 5, 9].indexOf(2) : 0
- //[2, 5, 9].indexOf(7) : -1
Js 数组——filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()的更多相关文章
- JS数组filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()实例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- javascript数组详解(js数组深度解析)【forEach(),every(),map(),filter(),reduce()】
Array 对象是一个复合类型,用于在单个的变量中存储多个值,每个值类型可以不同. 创建数组对象的方法: new Array(); new Array(size); new Array(element ...
- 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 ...
- js数组 函数
js数组 filter(),map(),some(),every(),forEach(),lastIndexOf(),indexOf() 文章1:http://www.jb51.net/article ...
- MyBatis传入参数为list、数组、map写法(转载)
MyBatis传入参数为list.数组.map写法 1.foreach简单介绍: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有item ...
- js数组中indexOf/filter/forEach/map/reduce详解
今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array. ...
- 原生JS数组操作的6个函数 arr.forEach arr.map arr.filter arr.some arr.every arr.findIndex
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()
ECMA Script5中数组方法如indexOf().forEach().map().filter().some()并不支持IE6-8,但是国内依然有一大部分用户使用IE6-8,而以上数组方法又确实 ...
- 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 ...
随机推荐
- STL源码分析读书笔记--第5章--关联式容器
1.关联式容器的概念 上一篇文章讲序列式容器,序列式容器的概念与关联式容器相对,不提供按序索引.它分为set和map两大类,这两大类各自有各自的衍生体multiset和multimap,的底层机制都是 ...
- 【转】从零开始编写自己的C#框架(7)——需求分析
转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...
- deep learning 的java库
deepLearning4j: https://github.com/deeplearning4j/libnd4j/issues/208 deepLearn ...
- ntpd和ntpdate
以无GUI 的Ubuntu 为例 1. ntpdate ntpdate是Ubuntu发行版的标配.按Ubuntu14.04的官方文档(这里),Ubuntu在启动时,会调用ntpdate,根据Ubunt ...
- 二、 C#调用存储过程
个人比较喜欢使用第二种传递参数的方法 1. 调用的方法 public DataTable ExceStoredProcedure (string strCom, SqlParameter[] comm ...
- PyQt多窗口调用
经常有人问到如何在一个主窗口中打开一个对话框,然后在确认对话框之后,开启另一个窗口进行后续操作,要求主窗口和最终的窗口之间都能响应用户操作,也就是非模态窗口.随手写了几行代码,简要示意. :::pyt ...
- CodeForces 711B Chris and Magic Square (暴力,水题)
题意:给定n*n个矩阵,其中只有一个格子是0,让你填上一个数,使得所有的行列的对角线的和都相等. 析:首先n为1,就随便填,然后就是除了0这一行或者这一列,那么一定有其他的行列是完整的,所以,先把其他 ...
- 关于IE开发人员工具(F12)找不到的问题
关于IE开发人员工具(F12)找不到的问题 解决方案:第一步,像往常一样F12或者,工具->开发人员工具,点击后,这个时候你是看不到工具界面(当然,如果你正好遇到了找不到这个问题);第二步,这个 ...
- C++100款开源界面库[转]
(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...
- ActionBar ShareActionProvider
添加share按钮 添加share按钮的主要步骤: 1. 在ActionBar中添加share按钮 2. 从item中获取ShareActionProvider ShareActionProvider ...