遍历数组,遍历对象的方法

遍历数组:

方法1: for 循环;(使用临时变量将数组长度缓存起来,避免重复获取数组长度)

for(var i = 0, leng = arr.length; i < leng;i++){}

方法2:foreach循环;遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

arr.forEach((item,index,arry)=>{
   // item,数组中的当前项;index,当前项的索引;array,原始数组
})

方法3:map循环;有返回值,可以return;可以对当前项进行运算后返回;

var arr = [1,2,3,4,5,6]
var res = arr.map((item,index,arr)=>{
    return item * 10
})
console.log(arr); // [1,2,3,4,5,6]
console.log(res); // [10,20,30,40,50,60]

方法4:for...of 循环 ;可以正确相应break, continue, return 语句;

for(var i of arr){}

方法5:filter遍历;不改变原始数组,返回新的数组;

var arr = [1,2,3,4,5]
arr.filter(res=>{
    if(res>2){return true}
})

方法6:every遍历; every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true; 在执行的过程中,如果遇到了false的情况,就停止继续往下执行;直接返回false;

  var arr = [1,2,3,5,6,7]
    var res = arr.every((item,index,arr)=>{
        console.log(item,index)
        return item > 5
    })
    console.log(res); // false

方法7:some遍历:some()是对数组中的每一项运行指定函数;该函数对其中任意一项返回true, 就返回true; 返回true就不再往下执行;

 var arr = [1,2,3,5,6,7]
    var res = arr.some((item,index,arr)=>{ 
        return item > 51
    })
    console.log(res)

方法8:reduce() 接收一个函数做为累加器;将数字类型的数组中的每一项进行运算;

var arr = [0, 1, 2, 3, 4];
  var res = arr.reduce(function(previousValue, currentValue, index, array){
 return previousValue + currentValue;
});
console.log(res) // 10

 方法9:reduceRight: 该方法类似于reduce();只不过是该方法是从数组的末尾向前做运算;

方法10: find() 返回数组中符合条件的第一个元素;没有就返回undefined;

var arr = [1,2,34,5]
var res = arr.find(item=>{
   return item > 2
})
console.log(res) // 34

方法11: findIndex 返回符合条件的第一个元素的下标

var res = [1,2,3].findIndex(x => {
    return x == 2
});
console.log(res) // 1

方法12: keys,values,entries

 ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

 var arr = [1,3,5,7]
var k = arr.keys()
var v = arr.values()
var e = arr.entries()
for(let item of k){
    console.log(item) // 0 1 2 3
}
for(let item of v){
    console.log(item) // 1,3,5,7
}
for(let item of e){
    console.log(item) // [0,1] [1,3] [2,5] [3,7]
}

遍历对象:

方法1;for ... in

const obj = {
            id:1,
            name:'zhangsan',
            age:18
}

 for(let key  in obj){
        console.log(key + '---' + obj[key])
  }

方法二: 1)、Object.keys(obj)  2)、Object.values(obj)

const obj = {
    id:1,
    name:'zhangsan',
    age:18
}
console.log(Object.keys(obj)) // ['id','name','age']
console.log(Object.values(obj)) // ['1','zhangsan','18']

第三种:使用Object.getOwnPropertyNames(obj)

 const obj = {
            id:1,
            name:'zhangsan',
            age:18
    }
    Object.getOwnPropertyNames(obj).forEach(function(key){
        console.log(key+ '---'+obj[key])
    })
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值