数组和对象的API

数组和对象的API

数组API:

  1. forEach遍历所有元素
  2. every判断所有元素是否都符合条件(返回true或false)
  3. some判断是否有至少一个元素符合条件
  4. sort排序
  5. map对元素重新组装,生成新数组
  6. filter过滤符合条件的元素

注:forEach与map用法相似都是遍历数组的每一项值;

区别:map的回调函数中支持return的返回值

 

1、forEach:

    var arr = [1,3,5,2,3];

    arr.forEach(function (item,index) {

        console.log("索引:"+index,"元素:"+item);

})

输出:  索引:0 元素:1

索引:1 元素:3

索引:2 元素:5

索引:3 元素:2

索引:4 元素:3

2、every:碰到一个返回不符合条件的,就返回false

var arr = [1,3,5,2,3,4];

var result = arr.every(function (item,index) {

        if(item<4){

            return true;

        }

    })

    console.log(result);

输出:false

3、some:碰到一个true的值就直接返回。

var arr = [1,3,5,2,3,4];

var result = arr.some(function (item,index) {

        if(item<2){

            return true;

        }

    })

    console.log(result);

输出:true

4、sort:

var arr = [1,3,5,2,3,4];

var arr1 = arr.sort(function (a,b) {

       return a-b;  //从小到大排序

       //return b-a;  //从大到小排序

   })

console.log(arr1);

输出:[1, 2, 3, 3, 4, 5]

5、map:将元素重新组装并返回

var arr = [1,3,5,2,3,4];

var arr2 = arr.map(function (item,index) {

       return item*item;

   })

    console.log(arr2);

输出:[1, 9, 25, 4, 9, 16]

6、filter:通过某一条件过滤数组

var arr = [1,3,5,2,3,4];

var arr3 = arr.filter(function (item,index) {

       if(item>2){

           return true;

       }

   })

    console.log(arr3);

输出:[3, 5, 3, 4]

 

对象API:

var obj = {

        x:100,

        y:200,

        z:300

    }

    var key;

    for(key in obj){

        if(obj.hasOwnProperty(key)){//hasOwnProperty是判断对象实例的是否具有某个属性

            console.log(key,obj[key]);

        }

}

输出:x 100

           y 200

           z 300

解题:

1、获取2018-03-21格式的日期

 function formateDate(dt) {

        if(!dt){

            dt = new Date();

        }

        var year = dt.getFullYear();

        var month = dt.getMonth()+1;

        var date = dt.getDate();

        if(month<10){

            month = "0" + month;    //强制类型转换

        }

        if(date<10){

            date = "0" + date;     //强制类型转换

        }

        return year + "-" + month + "-" + date;

    }

    var dt = new Date();

    var date = formateDate(dt);

    console.log(date);

2、获取随机数,要求是长度一致的字符串格式

    var random = Math.random();

    var random = random + '0000000000'; //末尾加0补位

    var random = random.slice(0,10);    //截取前10位

    console.log(random);

3、写一个能遍历对象和数组的forEach函数

 function forEach(obj,fn) {

        var key;

        if(obj instanceof Array){      //判断是数组

            obj.forEach(function (item,index) {

                fn(index,item);

            })

        }else{      //对象

            for(key in obj){

                fn(key,obj[key]);

            }

        }

    }

    //数组

    var arrs = [1,2,3];

    forEach(arrs,function (index,item) {

        console.log(index,item);

    })

    //对象

    var obj = {x:100,y:200};

    forEach(obj,function (key,value) {

        console.log(key,value);

    })

输出:

猜你喜欢

转载自blog.csdn.net/wang_NiFeng/article/details/81349558