美文网首页
ES5新增方法

ES5新增方法

作者: 挥剑斩浮云 | 来源:发表于2018-03-10 20:29 被阅读0次

ES5新增的数组方法forEach(function())

  • forEach() 用于调用数组的每个元素,并将元素传递给回调函数
    注意:forEach()对于空数组是不会执行回调函数的
    IE8不兼容只有存数组才有此方法,类数组对象不能使用
语法:array.forEach(function(val,key))
    //function参数数量可选
<script type="text/javascript">
    //声明数组
    var list = ['张姥姥','刘奶奶','牛奶奶','王大爷','马奶奶','赵姥姥'];
    list.forEach(function(val,key){
        console.log(val,key);
        //val:数组的值
        //key:数组的索引
    })
    //也可以把function写在外面
    list.forEach(eachArr);

    function eachArr(val, key){
    console.log(val, key);
    }
</script>

ES5新增的数组方法map(function())

  • 可以对数组中的每个元素进行修改
<script type="text/javascript">
    var list = [10,20,30,40,50];

    console.log(list);

    //map 用于对数组的每个元素进行修改,修改后的组成新的数组,以返回值形式返回
    var res = list.map(function(val, key){
        //val和key的参数和forEach的一样都是代表元素和索引值
        return val + 4;
    });

    console.log(res);
</script>

ES5新增的数组方法filter(function())

  • 检测数组元素,并返回符合所有符合条件元素的数组
<script type="text/javascript">
    //数组
    var arrList = [
        {name:"曹操", sorce: 89},
        {name:"曹丕", sorce: 69},
        {name:"曹植", sorce: 39},
        {name:"曹雪芹", sorce: 59},
        {name:"曹冲", sorce: 99},
        {name:"曹爽", sorce: 49}
    ];


    var newArr = arrList.filter(function(val, key){
        if (val.sorce >= 60) {
            return true;
        } else {
            return false;
        }
    });

    console.log(newArr);
</script>

ES5新增的数组方法

  • every(function())检测数值元素是否有元素符合指定条件,数组中所有成员都满足条件 才返回true
  • some(function())检测数值元素是否有元素符合指定条件,数组中一个成员满足条件 就返回true
  • indexOf()返回数组指定元素的第一次索引
  • lastIndexOf()返回数组指定元素最后出现的索引
<script>
//every  some
var arrList = [12, 34, 6, 56, 67, 34, 787, 89];

console.log(arrList);
//every 要求每个元素都满足 条件 返回true
var res = arrList.every(function(val, key) {
    //console.log(val, key);
    return val > 10;
});

console.log(res);

//some  只要一个满足 就返回true
var res1 = arrList.some(function(val) {
    return val > 10;
});
console.log(res1);

//indexOf
console.log(arrList.indexOf(34));
console.log(arrList.lastIndexOf(34));
</script>

方法

  • call() 改变this执行,调用函数或方法,call第二个往后的参数指定被调用的函数或方法的参数
  • apply() 改变this指向,调用函数或方法,第二个参数是数组,数组成员就是参数
  • bind() 改变this执行,返回新的函数(已经改变了this指向)
<script>
    var obj01 = {
        msg:"曹操",
        getInfo:function(){
            console.log(this.msg);
        }
    }

    var obj02 = {
        msg:"诸葛亮"
    }

    obj01.getInfo();
    //改变this指向
    obj01.getInfo.call(obj02);
    obj01.getInfo.apply(obj02);
    //bind需要返回一个函数,调用才能执行
    var fn = obj01.getInfo.bind(obj02);
    fn();
</script>

相关文章

网友评论

      本文标题:ES5新增方法

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