'How do I loop through a 2 d array to filter out the arrays whose data in the array matches the value wanted

This is the array: Local this: Object data: d: results: Array(3)

0: {__metadata: {…}, Id: 1, Title: 'Item 1', staffInChargeId: 99, ID: 1}
1: {__metadata: {…}, Id: 15, Title: 'Item 2', staffInChargeId: 99, ID: 15}
2: {__metadata: {…}, Id: 16, Title: 'Item 3', staffInChargeId: 80, ID: 16}

How can I filter through the array to filter out the arrays where staffInChargeId is equal to the LoginId?

        function LoadLinkResults(LoginId)
        {
                
                            var LoginId = GetID(userIdLoginName);
                        
        
            $.ajax({  
                    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('userForm')/items?$select=ID,Title,staffInChargeId&?$top=20",  
                    headers: {  
                        Accept: "application/json;odata=verbose"  
                    },  
                   async: false,  
                    success: function(data) {
                                                
                            if (data.d.results.length > 0)
                            {
                                for (var i = 0; i < data.d.results.length; i++)
                                {  
                                    //how do I  filter out the data whose staffInChargeId == LoginId?
                                    var item = data.d.results[i];  
                                    $('#LinkResults').append($("<option></option>").attr("value", item .staffInChargeId).attr("value", item .ID).text(item.Title));                 
                                } 
                                                                        
                                }
                            
                            },            
                        error: function(data) 
                        {
                        console.log("An error occurred. Please try again.");  
                        }
                });
        }
    
    ```


Solution 1:[1]

One suggestion : Your JSON contains 2 id properties in each object. Ideally there should be one as both contains same value.

Now if I understand your requirement properly, You can use Array.filter() to get the loggedIn user details. Here is the demo :

// Original Array
const inputArr = [
  {Id: 1, Title: 'Item 1', staffInChargeId: 99},
  {Id: 15, Title: 'Item 2', staffInChargeId: 99},
  {Id: 16, Title: 'Item 3', staffInChargeId: 80}
];

// Login Id
const loginId = 80;

// filterout the record based on the login Id.
const filteredObject = inputArr.filter((obj) => obj.staffInChargeId === loginId);

// Result
console.log(filteredObject);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Rohìt Jíndal