Javascript 对象数组筛选器问题

Javascript 对象数组筛选器问题,javascript,angularjs-filter,Javascript,Angularjs Filter,我将以下JSON作为一个数组,并尝试根据角色属性进行筛选,但无法筛选结果。请帮帮我 var data = [{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","su

我将以下JSON作为一个数组,并尝试根据角色属性进行筛选,但无法筛选结果。请帮帮我

var data = [{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["clientsupervisor"]}];
我编写的JavaScript代码如下:

var results = data.filter(function(user) {
  var roles = user.roles;

  return roles.filter(function(role) {
    return role == 'clientsupervisor';
  });
});

您的
数据
变量有语法错误。您需要删除包装它的引号

在你的过滤代码中也有一些变化

对此进行更改:

"[{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["clientsupervisor"]}]";
为此:

[{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["clientsupervisor"]}];
看到它工作了吗

var数据=[{“角色”:[“城市主管”]},{“角色”:[“合作伙伴”,“主管”]},{“角色”:[“城市主管”]},{“角色”:[“城市主管”]},{“角色”:[“合作伙伴”]},{“角色”:[“合作伙伴”,“主管”]},{“角色”:[“客户主管”],“姓名”:“杰克”,“档案ID”:34533};
var结果=data.filter(函数(用户){
返回user.roles.indexOf('clientsupervisor')>-1;
});

控制台日志(结果)
您的
数据
变量有语法错误。您需要删除包装它的引号

在你的过滤代码中也有一些变化

对此进行更改:

"[{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["clientsupervisor"]}]";
为此:

[{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["CitySupervisor"]},{"roles":["citysupervisor"]},{"roles":["partner"]},{"roles":["citysupervisor"]},{"roles":["partner","supervisor"]},{"roles":["clientsupervisor"]}];
看到它工作了吗

var数据=[{“角色”:[“城市主管”]},{“角色”:[“合作伙伴”,“主管”]},{“角色”:[“城市主管”]},{“角色”:[“城市主管”]},{“角色”:[“合作伙伴”]},{“角色”:[“合作伙伴”,“主管”]},{“角色”:[“客户主管”],“姓名”:“杰克”,“档案ID”:34533};
var结果=data.filter(函数(用户){
返回user.roles.indexOf('clientsupervisor')>-1;
});
控制台日志(结果)试试这个简单的方法

var results = data.filter(function(user) {
    return user.roles.indexOf("clientsupervisor") > -1 ? true: false
});
并从数据对象中删除
,这是数组对象

var data = [{"roles":["citysupervisor"]},.....];
试试这个,简单的方法

var results = data.filter(function(user) {
    return user.roles.indexOf("clientsupervisor") > -1 ? true: false
});
并从数据对象中删除
,这是数组对象

var data = [{"roles":["citysupervisor"]},.....];

这是无效的JSON,您需要转义双引号(
)或将字符串用单引号(
)括起来。请注意,JSON!=JavaScript对象。假设我在同一级别的角色中有两个以上的键,它们的名称为profileId和name。但结果是,我需要将这两个键的名称和profileId都用作id。我们怎么做呢?这是无效的JSON,您需要转义双引号(
)或将字符串用单引号(
)括起来。请注意,JSON!=JavaScript对象。假设我在同一级别的角色中还有两个键,它们的名称分别为profileId和name。但是在结果中,我需要这两个键name和profileId作为id。我们怎么做呢?假设我在相同级别的角色中还有两个键profileId和name。但是在结果中,我需要这两个键name和profileId作为id。我们怎么做呢?@Venkat,相同的代码适用于同一级别中的更多键。我更新了我的示例来演示这一点。假设我在同一级别的角色中还有两个键,它们的名称分别为profileId和name。但是在结果中,我需要这两个键name和profileId作为id。我们怎么做呢?@Venkat,相同的代码适用于同一级别中的更多键。我更新了我的示例来演示这一点。假设我在同一级别的角色中还有两个键,它们的名称分别为profileId和name。但是在结果中,我需要这两个键name和profileId作为id。我们怎么做呢?假设我在相同级别的角色中还有两个键profileId和name。但是在结果中,我需要这两个键name和profileId作为id。我们怎么做呢?