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 ...
随机推荐
- 我的 $OI$, 退役前写点东西
离 \(NOIp2018\) 还有五天, 总想写点什么 马上退役了啊 是什么时候喜欢上信息技术的呢 记不清了, 很小的时候就喜欢捣鼓关于电脑的东西 当时也不知道有算法这种东西 只是知道有黑客 巨 j8 ...
- Swift真机调试时报错dyld: Library not loaded: @rpath/libswiftCore.dylib
dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Containers/ ...
- 任意两点间的最短路问题(Floyd-Warshall算法)
#define _CRT_SECURE_NO_WARNINGS /* 7 10 0 1 5 0 2 2 1 2 4 1 3 2 2 3 6 2 4 10 3 5 1 4 5 3 4 6 5 5 6 9 ...
- 关闭MySQL数据库的几种方法
#1.使用mysqldadmin mysqladmin -uroot -p shutdown mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/$ ...
- JAVA Socket 编程---Socket 和 ServerSocket
一,Socket Socket的选项 1) TCP_NODELAY:默认值为false.表示采用Negale算法.当设置为true时,表示关闭Socket缓冲,立即发送数据. Socket默认发送数据 ...
- CSS3美化有序列表
如图效果: <ol class="rightList"> <li> <span>周波</span> <span>< ...
- [洛谷P3948]数据结构 题解(差分)
[洛谷P3948]数据结构 Description 最开始的数组每个元素都是0 给出n,opt ,min,max,mod 在int范围内 A: L ,R ,X 表示把[l,R] 这个区间加上X(数组的 ...
- Sqoop异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "m ...
- 2、Saltstack的数据系统
一.Grains grains是salt用来收集minion端底层系统信息的接口.比如,操作系统type.域名 .IP地址.内存及其他相关系统属性信息等.存储在minion端,用于保存minion ...
- yum和rpm的区别
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时.Yum(全称为 Y ...