ECMAScript5之Array
在ECMAScript5中对Array新增的些方法,以前没注意的同志们,嘻嘻,下面我们一起来边看边学。
1、Array之isArray(element) |
看到isArray,不言而喻,就是判断一个对象是不是数组哈。
且它是一个静态方法,使用规则如下:
Array.isArray(element);当element是数组时,返回true;否则返回false;
我们一起来写个demo
<!DOCTYPE html>
<head>
<title>array</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
//创建一个数组a和一个对象b
var a = new Array();
var b = new Object();
console.log(Array.isArray(a));
console.log(Array.isArray(b));
</script>
</body>
</html>
通过chrome来看看打印结果
2、Array之indexOf(element) |
看到indexOf,想必大家并不陌生,String.indexOf嘛,其实核心作用都一样.
数组的indexOf就是从头到尾,查找数组内的指定元素,并返回查找到的第一个元素索引值,若在数组中没有相应元素,则返回-1。
我们一起来写个demo并通过chrome来看看打印结果
<!DOCTYPE html>
<head>
<title>indexOf</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
//创建一个数组a
var a =new Array(1,2,3,4,5,1);
//从数组a的值中可以看出,打印结果为0
console.log(a.indexOf(1));
//从数组a的值中可以看出,打印结果为-1
console.log(a.indexOf(6));
</script>
</body>
</html>
3、Array之lastIndexOf(element) |
这个lastIndexOf,其实和上面所说的indexOf差不多,只是lastIndexOf是从尾到头搜索而已。
我们一起来写个demo并通过chrome来看看打印结果
<!DOCTYPE html>
<head>
<title>lastIndexOf</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
var a = new Array(1,2,3,4,5,1);
//因为lastIndexOf是从尾到头搜索,所以打印结果为5
console.log(a.lastIndexOf(1));
//从上面的结果看,打印结果为1
console.log(a.lastIndexOf(2));
</script>
</body>
</html>
4、Array之every |
every用法如下:
/*
method: every
function: every的作用就是遍历数组,当every中的函数都返回true时,才返回一个true;否则,只要有一个false,就返回false,和&&运算差不多
Param:
element --> 当前元素
index --> 元素索引
array --> 调用every方法的数组
*/
every(function(element,index,array){ });
我们demo下
<!DOCTYPE html>
<head>
<title>every</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
var a = new Array(1,2,3,4,5);
//因为我是判定的e < 3,所以根据a的值,可以知道返回false
console.log( a.every(function(e,i,arr){
return e < 3;
}) );
//因为我是判定的e < 6,所以根据a的值,可以知道返回true
console.log( a.every(function(e,i,arr){
return e < 6;
}) );
</script>
</body>
</html>
5、Array之some |
some的作用与上面的every有点不一样,倘若说every有点像&&运算,那么some就有点像||运算啦。some的函数中只要有一个返回true,那么就返回 true;全都是false时,才返回false。
Demo如下
<!DOCTYPE html>
<head>
<title>some</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
var a = new Array(1,2,3,4,5);
//因为e>4,只有一个5满足,但是已经足够了
console.log( a.some(function(e,i,arr){
return e > 4;
}) );
</script>
</body>
</html>
6、Array之forEach |
这个方法与jQuery的each差不多,就是遍历数组的。
使用如下:
/*
Param:
e --> 当前元素
i --> 元素索引
array --> 调用forEach方法的数组
*/
forEach(function(e,i,array){ });
Demo如下:
<!DOCTYPE html>
<head>
<title>forEach</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
var a = new Array(1,2,3,4,5);
a.forEach(function(e,i,array){
console.log(e);
});
</script>
</body>
</html>
7、Array之filter |
filter方法的作用就是遍历数组,并过滤数组中的值,最后返回过滤后的值的数组。当filter里的回调函数返回true时,就将这个值加入到临时数组中,若是false,则不加入;最后返回这个临时数组。
filter的用法如下:
//参数e为遍历数组中的当前元素值
filter(function(e){ });
Demo与代码如下:
<!DOCTYPE html>
<head>
<title>filter</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
var a = new Array(1,2,3,4,5);
var b = a.filter(function(e){
return e%2==0;
});
console.log('原值a:'+a);
console.log('filter后的值:'+b);
</script>
</body>
</html>
ECMAScript5之Array的更多相关文章
- ECMAScript5下Array的方法
声明:ECMAScript不会兼容IE8及以下版本IE浏览器. 一.迭代方法 注:这些迭代方法不会影响数组的值. 每个方法都有两个参数: array.方法(执行函数体,当前作用域(比如this,这个可 ...
- 如何判断一个变量是数组Array类型
在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...
- Javascript Array 非常用方法解析
在ECMAScript5的Array中已经有了Array.prototype.forEach,Array.prototype.filter,Array.prototype.map等方法 1. map ...
- js数组操作总结
1.数组的检测 ECMAScript3 if(value instanceof Array){ //执行操作 } 假定单一全局环境,如果网页存在多个框架,多个window,Array具有不 ...
- 读《编写可维护的JavaScript》第八章总结
第八章 避免“空比较” 我们在对传进来的参数做处理之前,肯定需要验证一下是否是我们想要的,也就是说大多数情况下,我们需要对比一下它的类型. 作者首先给了一个看起来都感觉不对的代码: var Contr ...
- 第七章:Javascript数组
数组是值的有序结合.每个值叫做一个元素,而每个元素在数组中都有一个位置,用数字表示,称为索引. javascript数组是无类型的:数组的元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类 ...
- javascript的几个问题
基础 1. 可选的分号 只有在缺少了分号就无法正确解析代码的时候,javascript,才会在一行的最后自动添加; a = 3 //自动填充 b = 4; var a a = 3 console.lo ...
- js判断一个变量是否为数组的解决方案
前端开发中,在做项目的时候,我们经常需要对一个变量进行数组类型的判断,当然即使你暂时没遇到,但是这个问题也是大家去面试时的高频问题,有必要拿出来说一说. 大家都知道js中可以使用typeof来判断变量 ...
- JavaScript检测原始值、引用值、属性
上周写过一篇读书笔记<编写可维护的JavaScript>之编程实践,其中 第8章 避免『空比较』是博主在工作中遇坑较多的雷区,所以特此把该章节重新整理分享,希望大家不再坑队友(>﹏& ...
随机推荐
- 关于js单线程(转载)
进程和线程都是操作系统的概念.进程是应用程序的执行实例,每一个进程都是由私有的虚拟地址空间.代码.数据和其它系统资源所组成:进程在运行过程中能够申请创建和使用系统资源(如独立的内存区域等),这些资源也 ...
- C#_取随机字符
1.多位数字字母组成,每位取值0-9A-Z /// <summary> /// 获取下一个顺序码根据上一个(数字字母组合) /// </summary> /// <par ...
- web前端面试题汇总
1.doctype作用 <!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器用什么文档标准解析这个文档.DOCTYPE不存在 ...
- PHP date函数时间相差8个小时解决办法
php中date时间相差8个小时的解决办法 作者: PHP中文网|标签:|2016-7-25 08:46 在Windows上,在默认的PHP配置下,date函数返回的时间值和当地时间总是相差8小时,即 ...
- android之volley学习
Volley是android的平台通信库,一个新的网络通信框架.Volley 的特点:适合数据量小,通信频繁的网络操作. 获取Volley git 工具使用:git clone https://and ...
- Struts 2的数据校验
既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢? 就让我带着大家一起来走进Struts 2的数据校验吧. 首先我们会想到在Stuts 2的登录案例中我们定义了一个Act ...
- 嵌入式linux下如何尽快播放开机音乐
今天在考虑如何尽快启动一个应用程序,播个开机音乐什么的. 最开始的启动流程是这样的,bootloader 启动kernel,kernel跑完挂载文件系统, 然后会执行/init,而这个init 是指向 ...
- 判断是PC端还是移动端
http://detectmobilebrowsers.com/ 此网站提供了各种编程语言(包括 Apache.ASP.ASP.NET.C#. IIS. JSP. JavaScript. jQuery ...
- 使用Spring JdbcTemplate实现数据库操作
今天我来演示 关于JDBCTemplate实现对数据库的查询和添加 首先是添加 第一步大家都知道 创建一个实体类 然后写一个方法 把实体类当参数传进去 在实现这个接口 JdbcDaoSupport这个 ...
- Replication的犄角旮旯(三)--聊聊@bitmap
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...