array.png
    array2.png

    这里提醒了使用Array.prototype.filter()和Arguments 类数组对象;由于传进来的参数是一个类数组对象,里面包含了需要被摧毁的数组以及待摧毁的参数,所以,第一步就是将这两个部分提取出来,再运用Array.prototype.filter()方法过滤符合要求的参数即可;代码如下:

    1. function destroyer(arr) {
    2. var argumentsArr = []; //建立一个空数组接收待摧毁的元素
    3. for(var i=0;i<arguments.length-1;i++){ //传进来的类数组对象还包含了需要被摧毁的数组
    4. argumentsArr.push(arguments[i+1]); //为了得到待摧毁的参数,只循环后面两个参数,
    5. } //然后添加进空数组
    6. return arr.filter(function(element){ //通过filter()回调函数,返回符合条件的数组
    7. return argumentsArr.indexOf(element) == -1; //返回在类数组中,
    8. }); //argumentsArr数组不存在的元素
    9. }
    10. destroyer([1, 2, 3, 1, 2, 3], 2, 3);

    版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明