需要使用到的方法(命令):
filter()
方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。filter()
不会改变原始数组。
indexOf()
方法返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。
arguments 是一个类似数组的对象, 对应于传递给函数的参数。
可使用var args = Array.from(arguments);
将arguments转换成真正的数组。
答案:
- 使用
Array.from()
将所有arguments提取出组成一个新数组; - 使用
filter(function(item))
依据function(item)所设置的条件过滤arr,将满足条件的元素滤出(不是滤除),并将该元素传递给Arr数组; -
function(item)
条件:args.indexOf(item) < 0
(历遍数组args,当其中有元素与item内容时,则返回该元素在args数组中的位置(位置最小值为“0”)。此处设置的是 <0,因此filter(function(item)
的条件是:
将与args数组中不相同的元素return出来。。。
function destroyer(arr) {
var args=Array.from(arguments);
var Arr = arr.filter(function(item){
return args.indexOf(item)<0;
});
return Arr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
网友评论