js中Array对象的常用遍历方法

js中Array对象的常用遍历方法

1.for循环
常用的循环工具,经常用于数组的循环遍历

let arr1=[1,2,3,4,5]
for(let i=0;i<arr1.length;i++)
      console.log(arr1[i])
//1
//2
//3
//4
//5

2.for in循环
主要用于普通对象的遍历,其中i代表对象的key值也就是obj[i]的值,也可以用于数组的遍历但是不太建议,因为i输出是字符串,当发生运算时就会导致数据错误。
for in在循环的时候会找到prototype上去,所以最好在循环体内加一个判断(obj[i].hasOwnPrototype(i)),hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有,返回true,否则返回false。

let obj={name:'yh',age:20}
let arr1=[1,2,3,4,5]
for(let i in obj)
   console.log(i)
for(let i in arr1) 
   console.log(i) 
//name
//age
//1
//2
//3
//4
//5

3.while循环

let obj=[{name:"张三",age:18},{name:'李四',age:20}]
let i=0;
while(obj[i])
{
    console.log(obj[i])
    i++
}
//{name: '张三', age: 18}
//{name: '李四', age: 20}

4.do while循环

 let i=3
 do{
      console.log(i--)
  }while(i>0)
//3
//2
//1

5.Array forEach 循环
forEach循环在所有元素调用完毕之前是不能停止的,它没有break语句,,如果你必须要停止,可以尝试 try catch 语句,就是在要强制退出的时候,抛出一个 error 给 catch 捕捉到,然后在 catch 里面 return,这样就能中止循环了,如果你经常用这个方法,最好自定义一个这样的 forEach 函数在你的库里。

let arr=[{name:"张三",age:18},{name:'李四',age:20}]
arr.forEach(function(value,index){
    console.log(value,index)
})
//{name: '张三', age: 18} 0
//{name: '李四', age: 20} 1

6.Array map()方法
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
注意:map 和 forEach 方法都是只能用来遍历数组,不能用来遍历普通对象

let arr=[1,2,3]
let tt=arr.map(function(i){
    console.log(i)
    return i*2
})
console.log(tt)
/*
1
2
3
(3) [2, 4, 6]
*/

7.Array filter()方法
filter 方法是 Array 对象内置方法,它会返回通过过滤的元素,不改变原来的数组。

let arr=[2,2,3]
let newarr=arr.filter(function(i){
    return i>1
})
console.log(newarr)
//(3)[2,2,,3]

8.Array some()方法
some() 方法用于检测数组中的元素是否满足指定条件(函数提供),返回 boolean 值,不改变原数组

let arr=[1,2,3]
let newarr=arr.some(function(i){
    return i>2
})
console.log(newarr)
//true

9.Array every()方法
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供),返回 boolean 值,不改变原数组。

var number = [12, 30, 25, 20]
var allOver20 = number.every(function(value) {
    return value > 20
})
console.log(allOver20)
//false

10.Array reduce()方法
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

let arr = [1, 2, 3, 4, 5]
let sum = arr.reduce(function(i, j) {
    console.log(i, j )
    return i + j;
})
console.log(sum)
//1 2
//3 3
//6 4
//10 5
//15

11.Array reduceRight()方法
reduceRight()方法,和 reduce() 功能是一样的,它是从数组的末尾处向前开始计算。

let arr = [1, 2, 3, 4, 5]
let sum = arr.reduceRight(function(i, j) {
    console.log(i, j)
    return i + j;
})
console.log(sum)
//5 4
//9 3
//12 2
//14 1
//15
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值