js中in运算符,forEach与map的用法-基础知识总结------彭记(016)

in运算符:

<script>
    /*1.能够遍历对象的属性*/
    var obj = {
        'name':'jack',
        age:20
    };
    for(var key in obj){
        console.log(key + ":" + obj[key]);
    }

    /*2.还可以判断 对象 是否可以访问某个属性,而不关注这个属性是否在当前对象中定义*/
    console.log('name' in obj); //true
    console.log('toString' in obj); // true
    console.log('toString1' in obj); // false
</script>

forEach的使用:

 

<script>
    /*forEach用来遍历数组*/
    //var arr= [123,2,4,35,435,65,7,658,67,98];
    /*
    value:当前遍历到元素值
    index:当前元素的索引
    arr:当前遍历的数组
    * */
    /*arr.forEach(function(value,index,arr){
        console.log(value + ":" + index + ":" + arr);
    })*/

    /*自定义forEach函数*/
    Array.prototype.myForEach = function(callback){
        for(var i =0;i<arr.length;i++){
            callback(this[i],i,this);
        }
    }
    var arr1= [123,2,4,35,435,65,7,658,67,98];
    arr1.myForEach(function(value,index){
        console.log(value + ":" + index + ":" + arr1);
    });
</script>

 

map的使用:

 

<script>
    var arr= [123,2,4,35,435,65,7,658,67,98];
    /*将数组值翻倍,再存储到数组*/
    /*1.使用for*/
    //var newArr=[];
    /*for (var i = 0; i < arr.length; i++) {
        var obj = arr[i];
        newArr.push(obj*2);
    }
    console.log(newArr);*/
    /*2.使用forEach*/
    /*arr.forEach(function(value,index,arr){
        newArr.push(value*2);
    });
    console.log(newArr);*/
    /*3.使用map函数*/
    /*arr.map(function(value,index,arr){
        newArr.push(value*2);
    });
    console.log(newArr);*/
    /*map会将结果存储到一个新生成的数组中再返回*/
   /* var newArr = arr.map(function(value,index,arr){
        return value * 2;
    });
    console.log(newArr);*/

    /*map的实现原理*/
    Array.prototype.myMap = function(callback){
        var temp = [];
        for(var i=0;i<this.length;i++){
            var v = callback(this[i],i,this);
            if(v){
                temp.push(v);
            }
        }
        return temp;
    };

    var newArr = arr.myMap(function(value,index,arr){
        return value * 2;
    });
    console.log(newArr);
</script>

 

posted @ 2017-08-29 12:29  依旧安好  阅读(244)  评论(0编辑  收藏  举报