Javascript 如何在一次搜索中获得匹配的员工详细信息而无需循环
我已经为员工个人和公司详细信息创建了一个两个json数组。 根据输入字段中给出的值,我匹配两个表,并在单个表中显示相应的员工个人和公司详细信息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>
<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");
}
}