需要使用到的方法(命令):
filter()
方法使用指定的函數(shù)測試所有元素锋喜,并創(chuàng)建一個包含所有通過測試的元素的新數(shù)組。filter()
不會改變原始數(shù)組豌鸡。
indexOf()
方法返回在數(shù)組中可以找到給定元素的第一個索引嘿般,如果不存在,則返回-1涯冠。
arguments 是一個類似數(shù)組的對象, 對應(yīng)于傳遞給函數(shù)的參數(shù)炉奴。
可使用var args = Array.from(arguments);
將arguments轉(zhuǎn)換成真正的數(shù)組。
答案:
- 使用
Array.from()
將所有arguments提取出組成一個新數(shù)組蛇更; - 使用
filter(function(item))
依據(jù)function(item)所設(shè)置的條件過濾arr瞻赶,將滿足條件的元素濾出(不是濾除),并將該元素傳遞給Arr數(shù)組派任; -
function(item)
條件:args.indexOf(item) < 0
(歷遍數(shù)組args砸逊,當其中有元素與item內(nèi)容時,則返回該元素在args數(shù)組中的位置(位置最小值為“0”)掌逛。此處設(shè)置的是 <0师逸,因此filter(function(item)
的條件是:
將與args數(shù)組中不相同的元素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);