ECMAscript5 新增数组内函数
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 新增数组内函数的更多相关文章
- 4日6日--ES5新增数组方法
forEach使用的函数调用,所以占内存比较大,不如定长for循环和迭代for循环 1.通过forEach将数组中的元素逐个表示出来(遍历方法,读取操作). 2.通过map将原数组中的元素进行算数运算 ...
- Array数组内函数
concat() 功能:合并数组,并且生成新数组.对原数组没有改变. 不传参数的时候,相当于生成新数组. 格式:数组.concat(数据...数组); 返回值:生成的新数组 代码示例: //.co ...
- js数组定义和方法 (包含ES5新增数组方法)
数组Array 1. 数组定义 一系列数据的集合成为数组.数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]. 2. 数组创建方式 (1) 字面量方法 ...
- ES5新增数组方法测试和字符串常见API测试
首先是ES5新增数组方法测试: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
- ES5新增数组的方法
ES5新增数组的方法 ES5新增数组常见方法(indexOf/forEach/map/filter/some/every) .indexOf( data , start) 检测数组中是否存在指定数据 ...
- ES5新增数组方法every()、some()、filter()、map()
JavaScript ES5标准中新增了一些Array方法,如every().some().filter().map().它们的出现使我们能够更加便利地操作数组,但对IE9以下浏览器的兼容性比较差.下 ...
- ES6新增数组的一些思考和使用
ES6数组的新增 伪数组转换为数组的两种方法 Array.from()把一个伪数组转换为一个真正的数组 伪数组:有下标和length,但是不能使用数组方法 let lis = document.que ...
- ECMAScript5中数组的方法
1.forEach()方法 遍历数组,为每个数组元素调用指定函数,三个参数分别为:数组元素 item.元素索引 index.数组本身 arr,无返回值 例: 2.map()方法 调用数组的每个元素传递 ...
- ECMAScript5新增对象语法糖getter和setter
在新的ECMAScript5中新添加了两个语法糖,这两个语法糖是这样的. var obj = (function(){ var num = 10; return { get n(){ return n ...
随机推荐
- java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)
背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...
- Unity NavMesh导航网格 初级教程
目的:要实现的功能就是你点击一下地图上的某个地方,人物就向着那个点移动.有点自动寻路的味道. 例子:三国群英传,三国赵云传之类的游戏里面的人物移动就可以用这个实现.还有一个我不太喜欢玩的游戏英雄联盟 ...
- SQL记录-小表join大表查询例子
- $使用dom4j可解析 返回&#x等字样的 html转义字符【转】
如果以GET或POST请求某个系统返回,带有 $#x 那很有可能是axis服务器返回的. <?xml version="1.0" encoding="UTF-8&q ...
- vscode插件和快捷键
目前用的挺多的一些编辑器有webstorm,vscode,Atom,HBuilder等等 今天来说说vscode Visual Studio Code (简称 vscode) 是一款免费开源的现代化轻 ...
- IDA Pro使用技巧
DA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头 ...
- 20155333 2016-2017-2 《Java程序设计》第六周学习总结
20155333 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的 InputStr ...
- vue插件开发实践与要点
其实就跟组件差不多意思,组件也可以实现相关的效果,但要在用到的地方都引用插件就可以全局注册,不需引用 试着撸一个插件,有2个功能,提示和对话框 网上找了个toast插件的代码,改了改,扩展加了个dia ...
- Struts通配符映射
- 基于XML搭建Dubbo项目
(1).新建一个普通Maven项目,用于存放一些公共服务接口及公共的Bean等. 公共Bean: package cn.coreqi.entities; import java.io.Serializ ...