这里提醒了使用Array.prototype.filter()和Arguments 类数组对象;由于传进来的参数是一个类数组对象,里面包含了需要被摧毁的数组以及待摧毁的参数,所以,第一步就是将这两个部分提取出来,再运用Array.prototype.filter()方法过滤符合要求的参数即可;代码如下:
function destroyer(arr) {
var argumentsArr = []; //建立一个空数组接收待摧毁的元素
for(var i=0;i<arguments.length-1;i++){ //传进来的类数组对象还包含了需要被摧毁的数组
argumentsArr.push(arguments[i+1]); //为了得到待摧毁的参数,只循环后面两个参数,
} //然后添加进空数组
return arr.filter(function(element){ //通过filter()回调函数,返回符合条件的数组
return argumentsArr.indexOf(element) == -1; //返回在类数组中,
}); //argumentsArr数组不存在的元素
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明