美文网首页
js和jquery中的遍历对象和数组(forEach,map,e

js和jquery中的遍历对象和数组(forEach,map,e

作者: Lusia_ | 来源:发表于2017-02-07 13:28 被阅读2021次

    1、for/in遍历对象

    for(var key in obj){    
        keys.push(key);    
        values.push(obj[key]);//取value      
    }    
    

    上述,原型链上的所有属性也都将被访问


    解决方法:hasOwnProperty
    只遍历对象自身的属性,而不包含继承于原型链上的属性

    for(var key in obj){   
      if (obj.hasOwnProperty(key) === true){
          keys.push(key);  
       }                 
    }  
    
    • object对象没有length属性,通过keys.length间接得到对象长度

    2、for,for/in遍历数组

    for (x in mycars){}
    for(var i=0;i<arr.length;i++){}
    

    3、for/in数组和对象打印结果

    for (x in person) {
        console.log(x + "=" + person[x]);
    }
    

    打印结果:

    var person = {fname:"John",lname:"Doe",age:25};
            fname=John
            lname=Doe
            age=25
    
    var mycars = new Array("Saab","Volvo","BMW");
              0=Saab
              1=Volvo
              2=BMW
    

    4、forEach (javascript语法)

    其中function中参数1·元素值,参数2·索引值

    var arr=['a','b',12];
    arr.forEach(function(item,index){
        console.log(index+'-'+item);
     });
    输出:
    0-a 
    1-b 
    2-12 
    

    5、map

    var arr=[1,2,3,4];
    var newArr = arr.map(function(val,index){
        return val+2;
    })
    结果newArr :[3, 4, 5, 6]
    

    map与forEach区别:map回调函数支持return返回值,就是把数组克隆一份,修改克隆之后的数组,原数组不变。

    6、each(jquery)

    //当参数列表是一个时,代表元素的索引
    //当参数列表是两个时,前面是索引,后面是元素值:
    //$.each(arr, function (index,item) {
        $(".list>li").each(function (i, item) {
        })
    

    相关文章

      网友评论

          本文标题:js和jquery中的遍历对象和数组(forEach,map,e

          本文链接:https://www.haomeiwen.com/subject/ndrpittx.html