2017-02-13 95 views
-2

我想傳遞一個參數給一個函數,這樣我可以多次調用我的數組對象元素(因爲我有他們很多,從SQL查詢返回)。如何將擴展參數傳遞給函數?

removeDuplicates(arr, x){ 
    var tmp = []; 
    var tmp2=[]; 
    for(let i = 0; i < 50; i++){ 
     if(tmp.indexOf(arr[i].id) == -1){ 
     tmp.push(arr[i].id); //always id 
     tmp2.push(arr[i].x); //for example arr[i].name 
     } 
    } 
    return tmp2; 
} 

如果我那樣做,並呼籲像這樣的方法:

removeDuplicates(arraytag2, arraytag2.name); 

這是行不通的。

+0

你的意思'tmp2.push(ARR [I] [X]);'? – Jag

+0

如果arraytag2是數組,你如何寫arraytag2.name? –

+0

我知道我不能它應該是arraytag2 [counter] .name,只是想在這裏找到一個快捷方式.. –

回答

1

爲什麼不使用數組中驚人的filter函數?

然後,您可以在函數中逐項進行自己的驗證,並且它自己的屬性。

function uniq(a) { 
 
    var seen = {}; 
 
    return a.filter(function(item) { 
 
     return seen.hasOwnProperty(item) ? false : (seen[item] = true); 
 
    }); 
 
} 
 

 
var arr = ["hello", "bye", "hola", "adios", "see you", "hello", "hola"]; 
 
var uniqArr = uniq(arr); 
 

 
console.log(arr); 
 
console.log(uniqArr);

+0

tnx,但我不是在尋找過濾.. –

+0

@eugen_sunic,但你需要過濾重複,以刪除它們,是不是你在找什麼? –