forEach使用的函数调用,所以占内存比较大,不如定长for循环和迭代for循环

  1、通过forEach将数组中的元素逐个表示出来(遍历方法,读取操作)。

  2、通过map将原数组中的元素进行算数运算,并把值返还给新建的数组中(遍历方法,修改操作)。

  3、filter提取原数组中符合条件的元素并放在新建的数组中(数据的帅选方法)。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ES5新增数组方法1</title>
<script type="text/javascript">
var arr = ["mike","john","andy","bob","jerry","tom"];
arr.forEach(function(n,i){
console.log("第"+(i+1)+"个数据是:"+n);
}); // for(var i=0,len=arr.length;i<len;i++){} //匿名函数绝大多数场合用于回调
// 匿名函数也能调用,但仅限一次
// (function () {
// console.log('匿名函数');
// })(); var num=[3,4];
var ret=num.map(function(n){
// console.log(arguments);
return n*n;//返回值出现在结果数组中
});
console.log(ret);
console.log(num); console.log('=====');
num=[3,5,78,2,13];
ret=num.filter(function(n){
return n%2==0;//返回值为true的数据出现在结果数组中
});
console.log(ret); </script>
</head>
<body> </body>
</html>

  4、通过some和every对数组进行条件方法的判定,every:数组中的每个元素都满足条件才为true否组为false。some:只要数组中的有元素满足条件就为true

  5、indexOf(8)返回数组中第一个8所在的位置,lastIndexOf(8)返回数组中最后一个8所在的位置

    通过do{}while()+indexOf来返回数组中所有8所在的位置。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ES5新增数组方法2</title>
<script type="text/javascript">
var arr=[12,8,5,7,8,3,8,22];
var ret=arr.every(function(n){
return n>3;
});
console.log(ret);
console.log('======');
var find=arr.indexOf(8);
console.log(find);
find=arr.lastIndexOf(8);
console.log(find);
console.log('======');
find=-1;
do{
find=arr.indexOf(8,find+1);
if(find==-1){
break;
}
console.log("find="+find);
}while(true); </script>
</head>
<body> </body>
</html>

 6、 var sum=arr.reduce(function(pre,curr){
    return pre+curr;
    });

  通过reduce对数组进行元素相加

  7、二维数组:数组中存放的数据还是数组

    二维数组扁平化(转为一维数组,在二维数组每一维的数量都相同时有意义)

  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ES5新增数组方法3</title>
<script type="text/javascript">
var arr=[1,8,5,4];
// arr.reduce(function(pre,curr,index){
// console.log(arguments);
// return curr;
// });
var sum=arr.reduce(function(pre,curr){
return pre+curr;
});
//1+8=9 9+5=14 14+4=18
console.log(sum);
console.log('=====');
//二维数组:数组中存放的数据还是数组
var multi=[];
multi[0]=[2,4,8];//2 4 8 4 7 2
multi[1]=[4,7,2];
multi[2]=[14,17,12];
multi[3]=[24,27,22];
console.log(multi);
for(var i=0,len=multi.length;i<len;i++){
for(var j=0,len2=multi[i].length;j<len2;j++){
console.log(multi[i][j]);
}
}
console.log('=====');
//二维数组扁平化(转为一维数组,在二维数组每一维的数量都相同时有意义)
var newarr=multi.reduce(function(pre,curr){
return pre.concat(curr);
});
console.log(newarr);
//获取2,2位置的数据:
var i=2;
var j=2;
var index=i*3+j;//3是每一维的长度,视具体数组而变
console.log(newarr[index]);
</script>
</head>
<body> </body>
</html>

4日6日--ES5新增数组方法的更多相关文章

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

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

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

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

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

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

  4. ES5新增数组方法(4):every

    检查数组元素的每个元素是否符合条件. // 数组中的元素全部满足指定条件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.every((value, ...

  5. ES5新增数组方法(3):some

    检查数组元素中是否有元素符合指定. // 数组中的元素部分满足指定条件返回true let arr = [1, 3, 5, 7, 9]; console.log(arr.some((value, in ...

  6. ES5新增数组方法(2):map

    通过指定函数处理数组的每个元素,并返回处理后的数组. 1.计算数组中每个元素的平方 let arr = [1, 2, 3, 4, 5, 6]; let newArr = arr.map(item =& ...

  7. ES5新增数组方法(1):filter

    检测数组元素,并返回符合条件所有元素的数组. 1.过滤数组中不符合条件的元素 let arr = [1, 2, 3, 4, 5, 6]; // 方式一 let newArr = arr.filter( ...

  8. ES5新增数组方法

    forEach/map   every/some  indexOf/lastIndexOf  filter reduce Array.isArray

  9. ES5新增数组的方法

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

随机推荐

  1. ASP.NET使用WebApi接口实现与Android客户端的交互(图片或字符串的接收与回传)

    最近在使用WebApi   做下记录 //此接口实现接收Android客户端上传的JSON格式的信息,并返回"nihao"字符串 [Route("ReceiveData& ...

  2. 随手小记(es6)

    在学习前辈阮一峰大神写的<ECMAScript入门>一书的过程中,第九章中讲到对象扩展时,第一条我就有点看不懂 ES6允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. v ...

  3. 读书笔记 effective c++ Item 21 当你必须返回一个对象的时候,不要尝试返回引用

    1. 问题的提出:要求函数返回对象时,可以返回引用么? 一旦程序员理解了按值传递有可能存在效率问题之后(Item 20),许多人都成了十字军战士,决心清除所有隐藏的按值传递所引起的开销.对纯净的按引用 ...

  4. Alamofire源码解读系列(二)之错误处理(AFError)

    本篇主要讲解Alamofire中错误的处理机制 前言 在开发中,往往最容易被忽略的内容就是对错误的处理.有经验的开发者,能够对自己写的每行代码负责,而且非常清楚自己写的代码在什么时候会出现异常,这样就 ...

  5. 360浏览器和猎豹浏览器重定向后丢失get参数

    1.场景: step1: 用户请求项目 http://localhost:8080/myProject step2: 我们的服务器将请求重定向到一个静态页面,并拼接上部分参数,如: <%@ pa ...

  6. 史上最全的AJAX

    概述 对于web应用程序:用户浏览器发送请求.服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML),渲染并显示浏览器上· Ajax和Form表单提交数据的的好 ...

  7. 《你不知道的JavaScript》整理(五)——值与原生函数

    一.值 1)数字 JavaScript只有一种数值类型:number(数字),包括"整数"和带小数的十进制数. //数字的语法 a.toExponential(); // &quo ...

  8. 警惕!MySQL成数据勒索新目标

    据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击 ...

  9. 【HLA】初识HLA/RTI

    本文主要对近期所翻阅的一些论文及资料进行的概要性整理,后续会有更多的关于HLA的研究细节发布,基于博客园的知识共享平台,以期共同进步! 一.引言 仿真的历史由来已久,在系统研制过程中,基于建模及仿真技 ...

  10. 九度OJ题目1080:进制转换(java)使用BigInteger进行进制转换

    题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36). 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成 ...