Уникальный массив с именами членов - PullRequest
0 голосов
/ 25 января 2019

У меня есть массив с членами группы (last_name, first_name), но в группе "Testgroup" есть еще одна группа "Testgroup2". Плохо то, что я не получаю уникальные значения из обеих групп.

Кто-нибудь может помочь? Это Javascript

var manager_list = new Array;
var manager_list = new Array;
var srvData = new spl_srv();


    <LIST PREFIX=list WHERE="group.last_name = 'Testgroup'">
        var wc = "group = U'$list.member'";
        var data = srvData.read("grpmem", wc, "member.last_name|member.first_name|member");
        var anz  = srvData.getcount();
        if(anz > 0) {
            for (i=0; i<anz; i++){
                var UU_ID = srvData.getdata(i,2);
                UU_ID = UU_ID.replace(/\r?\n|\r/g,"");
                manager_list.push(srvData.getdata(i,0)+', '+srvData.getdata(i,1)+'@,@'+UU_ID);
            }
        } 
        else {

        manager_list.push("$list.member.last_name, $list.member.first_name@,@$list.member");
        }

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Полагаю, вы должны сгладить массив, затем фильтр:

const data = yourArray.reduce(
  (acc, current) => acc.concat(current), 
[]);
  
const uniqueItems = [...new Set(data)]; 
0 голосов
/ 28 января 2019

Простое и функциональное решение с одним вкладышем, использующее функции standard и built-in, а не домашнее решение.

var manager_list = ['smith', 'john', 'phil', 'john'];
var unique = manager_list.filter(function(item, i, arr){ return arr.indexOf(item) === i; });

// result = ['smith', 'john', 'phil'];
0 голосов
/ 25 января 2019

Есть несколько способов получить уникальные значения из массива (удаление дубликатов)

  1. var uniqueManagers = []; $.each(manager_list, function(i, el){ if($.inArray(el, uniqueManagers) === -1) uniqueManagers.push(el); });

  2. let uniqueManagers = Array.from(new Set(manager_list))

Ваш код должен быть примерно таким, как показано ниже

var manager_list = new Array;
var manager_list = new Array;
var srvData = new spl_srv();
       <LIST PREFIX=list WHERE="group.last_name = 'Testgroup'">
        var wc = "group = U'$list.member'";
        var data = srvData.read("grpmem", wc, "member.last_name|member.first_name|member");
        var anz  = srvData.getcount();
        if(anz > 0) {
            for (i=0; i<anz; i++){
                var UU_ID = srvData.getdata(i,2);
                UU_ID = UU_ID.replace(/\r?\n|\r/g,"");
                manager_list.push(srvData.getdata(i,0)+', '+srvData.getdata(i,1)+'@,@'+UU_ID);
            }
        } 
        else {

        manager_list.push("$list.member.last_name, $list.member.first_name@,@$list.member");
        }
  manager_list = Array.from(new Set(manager_list))
...