牛骨文教育服务平台(让学习变的简单)
博文笔记

js遍历数组方法(总结)

创建时间:2016-02-15 投稿人: 浏览次数:2050

本文总结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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。