js遍历数组方法(总结)

本文总结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
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值