indexOf()
格式:数组.indexOf(item, start)
功能:从start这个下标开始,查找item在数组中的第一次出现的下标。
参数:item 我们要去查找的元素
start从哪个下标开始去查找,如果不传,默认从0开始查找
返回值: -1 没有找到
>=0 查到到的下标

var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
var res = arr.indexOf("绿灯侠", 4);
alert(res);// var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
var res = indexOf(arr, "绿灯sss侠");
alert(res);// -1 未找到

//自定义的(自己封装函数)indexOf

function indexOf(arr, item, start){
var index = -1;//假设找不到
if(!start){
start = 0;
}
for(var i = start; i < arr.length; i++){
if(arr[i] === item){
index = i;
break;
}
}
return index;
}

. forEach(function(item, index, arr ){ })

forEach()
格式:数组.forEach(function(item, index, arr){
item 当前遍历的到元素
index 当前遍历到的元素下标
arr 当前数组本身
})
功能:用来遍历数组。

for循环
for...in
forEach

var arr = ["蝙蝠侠", "超人", "闪电侠", "绿灯侠", "神奇女侠", "绿灯侠"];
arr.forEach(function(item, index, arr){
  alert(item + ", " + index);
})

效果:

传统方式

for(var i = 0; i < arr.length; i++){
  alert(arr[i]);
}

map() 遍历

var arr = [10, 20, 30, 40, 50];
var newArr = arr.map(function(item, index, arr){
  return item * 1.3; //newArr对应下标的结果
})
alert(arr);//10, 20, 30, 40, 50
alert(newArr);//13,26, 39, 52, 65

filter() 过滤

  var arr = [10, 20, 30, 40, 50];
var newArr = arr.filter(function(item, index, arr){   //找出原数组中大于20的所有元素,生成一个新数组   return item > 20; //过滤条件
});
alert(arr);//10, 20, 30, 40, 50
alert(newArr);//30, 40, 50

/*
some() 某些

判断是否有符合条件的元素存在。

【注】只要找到第一个符合条件的元素,就直接退出循环。
返回值: true false

var arr = [10, 20, 30, 40, 50];
var res = arr.some(function(item, index, arr){
// alert(item + ", " + index);
//判断的条件。
return item > 20;
})
alert(res);//30, 40, 50

every()
判断所有元素是否都符合条件。

【注】找到第一个不符合条件的元素,就终止循环,返回false

返回值:true false

var arr = [10, 20, 30, 40, 50];
var res = arr.every(function(item, index, arr){
alert(item + ", " + index);
//判断的条件。
return item < 40;
})
alert(res);// false

将上述代码中的判断条件修改为:

return item > 5;

结果就为真:

alert(res);// true

reduce() 归并

语法:数组.reduce(function(prev, next, index, arr){ })

prev 上一次循环 return后面表达式的结果
next 这一次遍历的元素
index 这一次遍历的元素的下标

var arr = [10, 20, 30, 40, 50];
var res = arr.reduce(function(prev, next, index, arr){
/*
prev 上一次循环 return后面表达式的结果
next 这一次遍历的元素
index 这一次遍历的元素的下标
*/
  alert(prev + ", " + next);
  return prev + next;
})
alert(res);//150 通过此种方法实现了求数组元素的总和

ECMAscript5 新增数组内函数的更多相关文章

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

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

  2. Array数组内函数

      concat() 功能:合并数组,并且生成新数组.对原数组没有改变. 不传参数的时候,相当于生成新数组. 格式:数组.concat(数据...数组); 返回值:生成的新数组 代码示例: //.co ...

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

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

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

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

  5. ES5新增数组的方法

    ES5新增数组的方法 ES5新增数组常见方法(indexOf/forEach/map/filter/some/every) .indexOf( data , start)  检测数组中是否存在指定数据 ...

  6. ES5新增数组方法every()、some()、filter()、map()

    JavaScript ES5标准中新增了一些Array方法,如every().some().filter().map().它们的出现使我们能够更加便利地操作数组,但对IE9以下浏览器的兼容性比较差.下 ...

  7. ES6新增数组的一些思考和使用

    ES6数组的新增 伪数组转换为数组的两种方法 Array.from()把一个伪数组转换为一个真正的数组 伪数组:有下标和length,但是不能使用数组方法 let lis = document.que ...

  8. ECMAScript5中数组的方法

    1.forEach()方法 遍历数组,为每个数组元素调用指定函数,三个参数分别为:数组元素 item.元素索引 index.数组本身 arr,无返回值 例: 2.map()方法 调用数组的每个元素传递 ...

  9. ECMAScript5新增对象语法糖getter和setter

    在新的ECMAScript5中新添加了两个语法糖,这两个语法糖是这样的. var obj = (function(){ var num = 10; return { get n(){ return n ...

随机推荐

  1. 虚拟化技术之KVM

    虚拟化技术之KVM 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是虚拟化 其实虚拟化技术已经不是一个新技术了,上个世纪六十年代IBM公司已经在使用,只不过后来(上个世纪八 ...

  2. ruby where用法

    用法1 Subject.where(").order("name") 用法2 与find方法不同的是,where方法返回的结果不是数组而是ActiveRelation,这 ...

  3. IdeaVim-常用操作

    IdeaVim简介 IdeaVim是IntelliJ IDEA的一款插件,他提高了我们写代码的速度,对代码的跳转,查找也很友好. 安装位置 安装之后它在 Tools > Vim Emulator ...

  4. java AOP使用配置项来进行注入实践

    java AOP使用注解@annotation方式实践 场景: 在目标方法前面和后面执行通知方法 目标类 @Component public class Play { public void watc ...

  5. VMware WorkStation9.0 安装centos-6.4

    1,设置虚拟机内存为8G时,启动报内存不足错误: Not enough physical memory is available to power on this virtual machine 解决 ...

  6. Android Retrofit2.1.0设置编码格式GBK

    设置接口如下: public interface IHttpService { /** * 获取userId * @param params * @return */ @FormUrlEncoded ...

  7. IDEA不生成WAR包,报错

    com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionExceptionProjec ...

  8. 虚拟机centos7系统下安装hadoop ha和yarn ha(详细)

    一:基础环境准备 (一):虚拟机新建五个centos7系统(复制文件夹的方式) (二):角色分配 (三)按照角色分配表配置 (1)更改主机ip(自行查找),如果只是个人搭建玩一玩,可选择安装cento ...

  9. Java EE之Hibernate的HibernateSessionFactory

    昨天,一下午都被一个bug缠身,最后逐层排查,发现是MyEclipse 2014自动生成的HibernateSessionFactory有问题.后观察网友提供的自动生成的HibernateSessio ...

  10. String split方法与Guava Splitter用法区别

    String split方法与Guava Splitter用法区别 今天同事写了一段使用String split方法的代码,如下所示,同事期望得到的是字符"1",但是没想到却得到空 ...