JS遍历数组的方法

//1.for循环  
var arr = ['12','231','231']
for(var i=0;i<arr.length;i++){
    //条件
    var item = arr[i]//每一项数组中的值  i为索引
    if(){}else{}//遍历判断条件
}

//2. for of遍历
let arr = [13, 22, 43, 64];
for(var element of arr) {
  console.log(element);//数组中的元素
} 

//3. for in遍历
let arr = [145, 42, 33, 43];
for(var element in arr) {
  console.log(element );//数组中的元素
}

//4. forEach()遍历--不会对空数组进行遍历--不改变原数组
var arr = [1, 2, 3, 4];
arr.forEach(function(item,index,self) {
// arr 需要遍历的数组
// item 遍历出的每一个元素
// index 元素对应的下标
// self 数组本身
// 无返回值, 不改变原数组
  console.log(item);
});

//5. map()遍历--不会对空数组进行检测--不改变原数组
var arr = [1, 2, 3, 4];
var newArr = arr.map(function(item,index,self) {
// arr需要遍历的数组
// item 遍历出的每一个元素
// index 元素对应的下标
// self 数组本身
// newArr 新返回的数组
// 数组元素个数不变,但是按照一定的条件转换
  return item*2;//返回值条件  newArr = [2, 4, 6, 8]
  return item>2  //返回值条件  newArr = [false, false, true, true]
});

//6. filter()过滤--不会对空数组进行检测--不改变原数组
let arr = [1, 2, 3, 4];
var newArr = arr.filter(function(item,index,self) {
// arr 需要遍历的数组
// item 遍历出的每一个元素
// index 元素对应的下标
// self 数组本身
// 有返回值,返回满足某个条件的元素构成的数组
// 数组元素个数可能改变,按照一定的条件返回
	return item < 3;//返回值  newArr = [1,2]
});

//7. find()遍历--不改变原数组
let arr = [1, 2, 3, 4];
let findIndexVeg = arr.find(item => {
// item 遍历出的每一个元素
    return item > 2;//返回满足条件的第一个元素findIndexVeg = 3
    return item < 1;//当没有满足条件的元素时返回undefined findIndexVeg = undefined
});

//8. findIndex()遍历
let arr = [1, 2, 3, 4];
let findIndexVeg = arr.findIndex(function(item, index, self ){
    //arr 需要遍历的数组  
    // item 返回数组元素
    // index返回遍历索引值
    // self 数组本身
  return item> 2;//返回满足条件的第一个元素findIndexVeg = 3
  return item<1;//当没有满足条件的元素则返回-1  
}); 
console.log(findIndexVeg)

//9. indexOf()遍历--不改变原数组。也可对字符串遍历
var arr= ['苹果', '梨子', '桃子', , '西瓜', '哈密瓜'];// arr需要遍历的数组
var item = '桃子';// item 需要搜索的值
var index = 0;// index 数组中的的索引值,可以为负数,代表相对数组末尾的偏移量.表示从哪个位置开始遍历查询
let indexOfFru = arr.indexOf(item ,index );//从第一个元素开始遍历
console.log(indexOfFru);//如果有满足条件的值,则返回第一个满足条件的值在数组中的索引,没有则返回-1;

//10. lastIndexOf()遍历--不改变原数组。也可对字符串遍历
var arr= ['苹果', '梨子', '桃子', , '西瓜', '哈密瓜'];// arr需要遍历的数组
var item = '桃子';// item 需要搜索的值
var index = 0;// index 数组中的的索引值,可以为负数,代表相对数组末尾的偏移量.表示从哪个位置开始遍历查询
let indexOfFru = arr.lastIndexOf(item ,index );//从最后一个元素开始遍历
console.log(indexOfFru);//如果有满足条件的值,则返回第一个满足条件的值在数组中的索引,没有则返回-1;

//11. every()遍历 --不会对空数组进行检测--不改变原数组
var arrObj = [1,2,34,5,5,6,6,765,1,56]
arrObj.every(function(item,index,self) {
// arrObj 需要遍历的数组
// item 遍历出的每一个元素
// index 元素对应的下标
// self 数组本身
// 有返回值,检测数组里的每一个值是否满足指定条件,如果有一个值不满足,返回false,剩余的值不再进行检测;如果所有的值都满足,则返回true
  return item < 3;//指定条件
});
 
//12. some()遍历--不会对空数组进行检测--不改变原数组
var arrObj = [1,2,34,5,5,6,6,765,1,56]
arrObj.some(function(item,index,self) {
// arrObj 需要遍历的数组
// item 遍历出的每一个元素
// index 元素对应的下标
// self 数组本身
// 有返回值,检测数组里的每一个值是否满足指定条件,如果有一个值满足,则返回true,剩余的值不再进行检测;如果所有的值都不满足,则返回false
  return item > 3;//指定条件
});

//13. reduce高阶函数(迭代(累加器))
var total = arrObj.reduce(function(total,item,index,self){
    // arrObj 需要遍历的数组
    // total 初始值或计算结束后的返回值
    // item 遍历出的每一个元素
    // index 元素对应的下标
    // self 数组本身
    return total+item;
    // 有返回值,返回计算结束后的total值
},初始值); 

//14. reduceRight()遍历
//接收一个函数作为累加器(accumulator),数组中的每个值(从右到左)开始缩减,最终为一个值。
//第二个参数作为第一次调用的a的值。
let arrNum = [2, 4, 6, 8, 10];
// 累加
let sum = arrNum.reduceRight(function(x, y){
  return x + y;
});
console.log(sum); // 30
// 累乘
let multiple = arrNum.reduceRight(function(x, y){
  return x * y;
});
console.log(multiple); // 3840
// 求最大值
let bigger = arrNum.reduceRight(function(x, y){
  return x > y ? x : y;
});
console.log(bigger); // 10 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值