2017-02-13 4 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 (обр [я] [х]);'? – 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, но вам нужно отфильтровать дубликаты, чтобы удалить их, не так ли, что вы ищете? –

Смежные вопросы