Цикл по объекту JS и функция для каждого элемента - PullRequest
0 голосов
/ 26 июня 2018

Я, должно быть, слишком много думаю о решении этой проблемы, но, похоже, не могу понять это правильно.

У меня есть массив object примерно так:

[ 
  {  ItemID: 1,  Path: '/Admin',     Name: 'Admin'   },
  {  ItemID: 2,  Path: '/Product',   Name: 'Product' },
  {  ItemID: 1,  Path: '/Reports',   Name: 'Reports' } 
]

Я хочу нанести на карту каждый элемент, и для каждого мне нужно запустить функцию, которая будет возвращать, имеют ли они доступ. то есть логическое (да / нет).

Пока у меня есть что-то вроде этого:

const newData = data.map((curr, val , arr) => {

    if (checkAccess(username, curr.Name )) {  //checkAccess returns true or false
        return { ...current };
    }
});

Я хочу вернуть только те, к которым у них есть доступ.

при условии, что пользователь не может получить доступ к Admin, конечный объект должен быть:

[ 
  {  ItemID: 2,  Path: '/Product',   Name: 'Product' },
  {  ItemID: 1,  Path: '/Reports',   Name: 'Reports' } 
]

РЕДАКТИРОВАТЬ:

Проблема также в том, что функция не возвращает true / false

function checkInGroup(username, name) {
    let inGroup = "";
    ad.isUserMemberOf(username, name, function(err, isMember) {
        if (err) {
            return res.json("Error ", err);
        }
        inGroup = isMember; //this part returns true
    });
    return inGroup; //this seems to return empty string
}

1 Ответ

0 голосов
/ 26 июня 2018

попробуйте использовать фильтр , так как он создает новый массив со всеми элементами, которые удовлетворяют условию:

const res = data.filter(obj => obj.Path !== '/Admin');
console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...