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":"romin.k.irani@gmail.com"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"neilrirani@gmail.com"
}
]
]
}

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":"romin.k.irani@gmail.com"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"neilrirani@gmail.com"
}
]

};

var code ='E2' , email ='neilrirani@gmail.com' , 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="neilrirani@gmail.com";
let phone="408-1111111";
let code="E2";
let Employees = [
{
"userId":"rirani",
"jobTitleName":"Developer",
"preferredFullName":"Romin Irani",
"employeeCode":"E1",
"region":"CA",
"phoneNumber":"408-1234567",
"emailAddress":"romin.k.irani@gmail.com"
},
{
"userId":"nirani",
"jobTitleName":"Developer",    
"preferredFullName":"Neil Irani",
"employeeCode":"E2",
"region":"CA",
"phoneNumber":"408-1111111",
"emailAddress":"neilrirani@gmail.com"
}
];
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