Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在一次搜索中获得匹配的员工详细信息而无需循环_Javascript_Html - Fatal编程技术网

Javascript 如何在一次搜索中获得匹配的员工详细信息而无需循环

Javascript 如何在一次搜索中获得匹配的员工详细信息而无需循环,javascript,html,Javascript,Html,我已经为员工个人和公司详细信息创建了一个两个json数组。 根据输入字段中给出的值,我匹配两个表,并在单个表中显示相应的员工个人和公司详细信息 <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script> <script>

我已经为员工个人和公司详细信息创建了一个两个json数组。 根据输入字段中给出的值,我匹配两个表,并在单个表中显示相应的员工个人和公司详细信息

<html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
    <script>
    var employee= 
       {
  "EmployeesPersonalDetails" : 
    [
       {
           "employeeID":01,
           "region":"Coimbatore",
           "phoneNumber":9087653456,
           "emailAddress":"abc@gmail.com"
       },
       {

           "employeeID":02,
           "region":"Avinashi",
           "phoneNumber":8990908765,
           "emailAddress":"def@gmail.com"
       },
       {
           "employeeID":03,
           "region":"Thippur",
           "phoneNumber":9089898990,
           "emailAddress":"ghi@gmail.com"
       },
       {
           "employeeID":04,
           "region":"Madurai",
           "phoneNumber":9012345990,
           "emailAddress":"jkl@gmail.com"
       },
       {
           "employeeID":05,
           "region":"Thippur",
           "phoneNumber":9067890990,
           "emailAddress":"mno@gmail.com"
       },
       {
           "employeeID":06,
           "region":"Thippur",
           "phoneNumber":9345218990,
           "emailAddress":"pqr@gmail.com"
        }
    ]
    }

var empcmpy={
"EmployeesCompanyDetails" :[
    {   
                "name" : "Mike",
                "employeeID" : 01,
                "designation" : "Software engineer"
    },
    {
                "name" : "Westlee",
                "employeeID" : 02,
                "designation" : "Software engineer trainee"
    },
    {   
                "name" : "Denise",
                "employeeID" : 03,
                "designation" : "Software test engineer"
    },

        {       "name" : "Matthew",
                "employeeID" : 04,
                "designation" : "Software Test engineer trainee"
    },
    {   
                "name" : "Mark",
                "employeeID" : 05,
                "designation" : "Project Manager"
    },
    {   
                "name" : "Karla",
                "employeeID" : 06,
                "designation" : "Associate Project Manager "
    }
]
}
function employeeDetails(){
      var eID = document.getElementById('eid').value; 
      var flag = false; 
         if(eID != "" ){
               for(i=0;i<employee.EmployeesPersonalDetails.length;i++){
                  for(j=0;j<empcmpy.EmployeesCompanyDetails.length;j++){
                       if(employee.EmployeesPersonalDetails[i].employeeID == eID && empcmpy.EmployeesCompanyDetails[j].employeeID == eID ){
                            flag=true;
                            document.getElementById('pro2').style.display = "block";
                            var tblRow = "<tr>" + "<td>" + empcmpy.EmployeesCompanyDetails[j].name + "</td>" 
                                         +"<td>" + empcmpy.EmployeesCompanyDetails[j].employeeID + "</td>"  
                                         + "<td>" + employee.EmployeesPersonalDetails[i].phoneNumber + "</td>" 
                                         +"<td>" + employee.EmployeesPersonalDetails[i].emailAddress + "</td>"
                                         +"<td>" + empcmpy.EmployeesCompanyDetails[j].designation + "</td>"
                                         +"<td>" + employee.EmployeesPersonalDetails[i].region + "</td>" 
                                         + "</tr>";
                            $(tblRow).appendTo("#employee1 tbody");
                        }
                    }
                }
                 if(flag==false)
                     alert ("Not matched");
            }

         else 
            {
                alert ("Emp id is empty");
            }
    }
</script>
</head>
<body>
<div class="wrapper">
<div>
Enter Emp id : <input type ="text" id="eid" name="eid"/>
<button id="getEmpdetails" onclick="employeeDetails()"> GetEmployeeDetails</button>
</div>
<div id ="pro2" class="profile2" style="display:none;">
 </br>  <table id= "employee1" border="2">
  <thead>
            <th>Name</th>
            <th>ID</th>
            <th> Phone Number</th>
            <th>Email Address</th>
            <th>Designation</th>
            <th>City</th>
        </thead>
      <tbody>
       </tbody>
   </table>

</div>
</div>
</body>
</html>

var雇员=
{
“员工个人详细信息”:
[
{
“雇员ID”:01,
“地区”:“哥印拜陀”,
“电话号码”:9087653456,
“电子邮件地址”:”abc@gmail.com"
},
{
“雇员ID”:02,
“区域”:“Avinashi”,
“电话号码”:89908765,
“电子邮件地址”:”def@gmail.com"
},
{
“雇员ID”:03,
“区域”:“Thippur”,
“电话号码”:908990,
“电子邮件地址”:”ghi@gmail.com"
},
{
“雇员ID”:04,
“地区”:“马杜赖”,
“电话号码”:9012345990,
“电子邮件地址”:”jkl@gmail.com"
},
{
“雇员ID”:05,
“区域”:“Thippur”,
“电话号码”:9067890990,
“电子邮件地址”:”mno@gmail.com"
},
{
“雇员ID”:06,
“区域”:“Thippur”,
“电话号码”:9345218990,
“电子邮件地址”:”pqr@gmail.com"
}
]
}
var empcmpy={
“员工公司详细信息”:[
{   
“姓名”:“迈克”,
“雇员ID”:01,
“指定”:“软件工程师”
},
{
“名称”:“Westlee”,
“雇员ID”:02,
“名称”:“软件工程师培训生”
},
{   
“姓名”:“丹尼斯”,
“雇员ID”:03,
“指定”:“软件测试工程师”
},
{“姓名”:“马修”,
“雇员ID”:04,
“名称”:“软件测试工程师培训生”
},
{   
“名称”:“标记”,
“雇员ID”:05,
“任命”:“项目经理”
},
{   
“姓名”:“卡拉”,
“雇员ID”:06,
“任命”:“副项目经理”
}
]
}
函数employeeDetails(){
var eID=document.getElementById('eID').value;
var标志=假;
如果(eID!=“”){

对于(i=0;i您最好在另一个循环中的一个循环上使用两个单独的循环:

 function employeeDetails() {
  var eID = document.getElementById('eid').value;
  if (eID != "") {
    var em1, em2;
    for (var i = 0; i < employee.EmployeesPersonalDetails.length; i++) {
      if (employee.EmployeesPersonalDetails[i].employeeID == eID) {
        em1 = employee.EmployeesPersonalDetails[i];
      }
    }

    for (var j = 0; j < empcmpy.EmployeesCompanyDetails.length; j++) {
      if (empcmpy.EmployeesCompanyDetails[j].employeeID == eID) {
        em2 = empcmpy.EmployeesCompanyDetails[j];
      }
    }

    if (!em1 || !em2) {
      alert("Not matched");
      return;
    }

    // use em1 and em2 to render table

  } else {
    alert("Emp id is empty");
  }
}
函数employeeDetails(){
var eID=document.getElementById('eID').value;
如果(eID!=“”){
var-em1,em2;
对于(变量i=0;i

这样,与当前实现的O(n^2)相比,复杂性仅为O(n)

类似的东西会更好


var雇员=
{
“员工个人详细信息”:
[
{
“雇员ID”:01,
“地区”:“哥印拜陀”,
“电话号码”:9087653456,
“电子邮件地址”:”abc@gmail.com"
},
{
“雇员ID”:02,
“区域”:“Avinashi”,
“电话号码”:89908765,
“电子邮件地址”:”def@gmail.com"
},
{
“雇员ID”:03,
“区域”:“Thippur”,
“电话号码”:908990,
“电子邮件地址”:”ghi@gmail.com"
},
{
“雇员ID”:04,
“地区”:“马杜赖”,
“电话号码”:9012345990,
“电子邮件地址”:”jkl@gmail.com"
},
{
“雇员ID”:05,
“区域”:“Thippur”,
“电话号码”:9067890990,
“电子邮件地址”:”mno@gmail.com"
},
{
“雇员ID”:06,
“区域”:“Thippur”,
“电话号码”:9345218990,
“电子邮件地址”:”pqr@gmail.com"
}
]
}
var empcmpy={
“员工公司详细信息”:[
{   
“姓名”:“迈克”,
“雇员ID”:01,
“指定”:“软件工程师”
},
{
“名称”:“Westlee”,
“雇员ID”:02,
“名称”:“软件工程师培训生”
},
{   
“姓名”:“丹尼斯”,
“雇员ID”:03,
“指定”:“软件测试工程师”
},
{“姓名”:“马修”,
“雇员ID”:04,
“名称”:“软件测试工程师培训生”
},
{   
“名称”:“标记”,
“雇员ID”:05,
“任命”:“项目经理”
},
{   
“姓名”:“卡拉”,
“雇员ID”:06,
“任命”:“副项目经理”
}
]
}
函数employeeDetails(){
var eID=document.getElementById('eID').value;
var标志=0;
$(“#employee1 tbody”).html(“”);
如果(eID!=“”){

对于(var j=0;j你可以这样做


var雇员=
{
“员工个人详细信息”:
[
{
“雇员ID”:01,
“地区”:“哥印拜陀”,
“电话号码”:9087653456,
“电子邮件地址”:”abc@gmail.com"
},
{
“雇员ID”:02,
“区域”:“Avinashi”,
“电话号码”:89908765,
“电子邮件地址”:”def@gmail.com"
},
{
“雇员ID”:03,
“区域”:“Thippur”,
“电话号码”:908990,
“电子邮件地址”:
 function employeeDetails() {
  var eID = document.getElementById('eid').value;
  if (eID != "") {
    var em1, em2;
    for (var i = 0; i < employee.EmployeesPersonalDetails.length; i++) {
      if (employee.EmployeesPersonalDetails[i].employeeID == eID) {
        em1 = employee.EmployeesPersonalDetails[i];
      }
    }

    for (var j = 0; j < empcmpy.EmployeesCompanyDetails.length; j++) {
      if (empcmpy.EmployeesCompanyDetails[j].employeeID == eID) {
        em2 = empcmpy.EmployeesCompanyDetails[j];
      }
    }

    if (!em1 || !em2) {
      alert("Not matched");
      return;
    }

    // use em1 and em2 to render table

  } else {
    alert("Emp id is empty");
  }
}