Javascript AngularJS-将登录用户与JSON数组中的用户进行匹配

Javascript AngularJS-将登录用户与JSON数组中的用户进行匹配,javascript,jquery,angularjs,arrays,json,Javascript,Jquery,Angularjs,Arrays,Json,因此,我在用户登录时在本地存储中设置一个密钥,该密钥包含用户刚登录时使用的用户名。我需要做的是两件事将该值与用户名一起放入其中,并通过API返回的用户名JSON数组进行搜索。如果本地存储用户名与JSON数组中的一个名称匹配,如果JSON“status”键的值为“in PROCESS”,则需要运行一个简单的jQuery行 以下是返回JSON的控制器,其中包含API中的用户名列表: function carDetails($scope, CarDetailService, API) { CarD

因此,我在用户登录时在本地存储中设置一个密钥,该密钥包含用户刚登录时使用的用户名。我需要做的是两件事将该值与用户名一起放入其中,并通过API返回的用户名JSON数组进行搜索。如果本地存储用户名与JSON数组中的一个名称匹配,如果JSON“status”键的值为“in PROCESS”,则需要运行一个简单的jQuery行

以下是返回JSON的控制器,其中包含API中的用户名列表:

function carDetails($scope, CarDetailService, API) {
  CarDetailService.getCar().success(function(details) {
    $scope.details = details;
  });
}
我需要运行的jQuery行只是:

$('#takeAction').css('display', 'block');

如上图所示,返回的数组是“所有当前审批人”,另一个键是“状态”。您可以看到本地存储中的用户名(或电子邮件)与“所有当前审批人”中的一个匹配。即使现在阵列中只存在一封电子邮件,应用程序中的其他电子邮件在阵列中也会有5个以上的用户名,这就是我需要在阵列中搜索的原因

我可以创建一个从本地存储获取用户名的变量:

var user = localStorage.getItem('user')
但从这里开始,我不知道如何将其与“所有当前审批人”数组中的值匹配,检查以确保状态为“正在处理”,然后运行jQuery行


谢谢您的帮助。

听起来像是一个基本的for循环可以满足您的需要

var approvers = $scope.details["All Current Approvers"],
    status    = $scope.details.Status;

for (var i = 0; i < approvers.length; i++) {
    if (approvers[i] === user && status === 'IN PROCESS') {
        // do jQuery
    }
}
var approvers=$scope.details[“所有当前审批人”],
status=$scope.details.status;
对于(变量i=0;i

注意用于引用包含空格的JSON属性的括号语法。

使用高阶函数forEach

jsonList.forEach(function(user){
if(user.name == "name" && user.Status == "In Progress"){
  $('#takeAction').css('display', 'block');
}
})

如果没有存储在LoalSturt

中的用户,请考虑将用户设置为NULL
var user = localStorage.getItem("user") || null;

我认为这是行不通的….$scope.details=details返回所有JSON键和值。我需要搜索“详细信息”输出,找到数组“所有当前审批人”,并将其与本地存储中的用户匹配。这不是在搜索数据库“细节”的输出是什么?不过我可能错了。你在哪里定义AllCurrentApprovers?我不是,我只是用它作为例子来说明for循环的概念。听起来你想要的是for循环——我提供了一个构建for循环的例子。您需要自己填写详细信息,特别是对您的“所有当前审批人”数组的引用。您是否在原始问题中询问如何引用该数组?我已对我的答案进行了编辑,以更加具体,包括对该数组的正确引用等。我想这就是您要找的内容?很高兴您找到了它!!谢谢你的帮助。