js遍历数组方法(总结)

来源:互联网 发布:企业java开发工具 编辑:程序博客网 时间:2024/05/21 22:22

本文总结js遍历数组的方法:

问题:遍历数组arr,将各个元素全部转成大写

var arr = ['a','b','c','d'];

方法1:for循环 这个方法比较常用

"use strict";var arr = ['a','b','c','d'];var arrUp = [];for(var i = 0; i < arr.length; i++){    arrUp.push(arr[i].toUpperCase());}console.log(arrUp);             //['A','B','C','D']

方法2:for in 循环 该方法通常用于遍历对象(数组一种特殊的对象)

"use strict";var arr = ['a','b','c','d'];var arrUp = [];for(var i in arr){    arrUp.push(arr[i].toUpperCase());}console.log(arrUp);             //['A','B','C','D']

方法3:forEach方法 数组的迭代方法(下文解释)
返回值:无返回值

"use strict";var arr = ['a','b','c','d'];var arrUp = [];arr.forEach(function(key, index, array){    arrUp.push(key.toUpperCase());});console.log(arrUp);             //['A','B','C','D']

方法4:map方法 数组的迭代方法(下文解释)
返回值:返回每次函数调用结果组成的数组

"use strict";var arr = ['a','b','c','d'];var arrUp = arr.map(function(key, index, array){    return key.toUpperCase();});console.log(arrUp);             //['A','B','C','D']

对于上面的简单问题,可能这个四种方法相对于比较好,但是问题一复杂呢

var arr = [1, 4, 10, 5, 8];

问题:对于这个数组,请计算大于6的数组元素个数
只是举一个简单的例子,上面的四种方法也行,只不过可能判断比较麻烦,这里介绍遍历数组的方法,相信在不同的情景中,它们可能更优。

数组迭代方法

下面的方法,仅仅返回值不同,其余完全一样:接收2个参数,一个函数(必选)和运行该函数的作用域对象(可选,一般不用,目前我不知道有什么妙用,所以不做过多解释)

//要接受的函数,本文叫判断函数function(key, index, array){    //key: 数组项值    //index: 该项的数组下标    //arr:待操作的数组}

方法5:every方法
返回值:如果判断函数对于每一项都返回true,则返回true
用处:根据条件检测数组每一项,只想得到布尔值

"use strict";var arr = [1, 4, 10, 5, 8];var arrTest = arr.every(function(key, index, array){    return (key > 2);});console.log(arrTest);   //false

方法6:filter方法
返回值:返回一个数组,数组元素由判断函数会返回true的项组成
用处:条件筛选

"use strict";var arr = [1, 4, 10, 5, 8];var arrTest = arr.filter(function(key, index, array){    return (key > 6);});console.log(arrTest);   //[10, 8]

方法7:some方法
返回值:如果判断函数对于任一项返回true,则返回true
用处:条件筛选

"use strict";var arr = [1, 4, 10, 5, 8];var arrTest = arr.some(function(key, index, array){    return (key > 6);});console.log(arrTest);   //true
0 0