0

Let me how to find a json in javascript.
Sample Json:

   {
"Employees" : [
{
"userId":"rirani",
"jobTitleName":"Developer",

"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"[email protected]"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"[email protected]"
}
]
]
}

the above json i want find particular userId based on employeeCode,emailAddress ad PhoneNumber. currently i am doing like below

for(var i=0; i<json.length;i++){
       if((employeeCode==code)&&(emailAddress ==email)&&(PhoneNumber==phone)){
                     //here i am getting userId
        }   
    }

I want know if this is the correct way. If it is small json load it ok. but if it's large scale of data what i have to do.

Shanmugapriya D
  • 306
  • 3
  • 13

2 Answers2

1

You can simply use the map function on the Employee array:

var data =    {
"Employees" : [
{
"userId":"rirani",
"jobTitleName":"Developer",

"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"[email protected]"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"[email protected]"
}
]

};

var code ='E2' , email ='[email protected]' , phone = '408-1111111', userId;
data.Employees.map(x=>{
   if(x.employeeCode == code && x.phoneNumber == phone && x.emailAddress== email){
     userId = x.userId;
  }
});

console.log(userId);
Ankit Agarwal
  • 30,378
  • 5
  • 37
  • 62
  • This is not the purpose of the `map` method. `map` method is used to create another array by applying a `callback` provided function for every item from `array` and returns a new array. – Mihai Alexandru-Ionut Aug 29 '17 at 11:53
0

You can use find method which accepts a callback provided function applied on every item in the array.

The find() method returns the value of the first element in the array that satisfies the provided testing function. Otherwise undefined is returned.

let emailAddress="[email protected]";
let phone="408-1111111";
let code="E2";
let Employees = [
{
"userId":"rirani",
"jobTitleName":"Developer",
"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"[email protected]"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"[email protected]"
}
];
let employee=Employees.find(function(employee){
    return employee.emailAddress==emailAddress && employee.phoneNumber==phone && employee.employeeCode==code;
});
console.log(employee.userId);
Mihai Alexandru-Ionut
  • 47,092
  • 13
  • 101
  • 128