I have an immutable List that looks like this:

```
 this.state = {
      suggestedUsers: fromJS([
                        {
                          user: {
                            client_user_id: "1234567890",
                            full_name: "marty mcfly",
                            image: "imageURL",
                            role_name: "Associate Graphic Designer",
                            selected: false
                           }
                         },
                         {
                          user: {
                            client_user_id: "0987654321",
                            full_name: "doc",
                            image: "imageURL",
                            role_name: "Software Engineer",
                            selected: false
                           } 
                         }                
                       )]

```

This is used in a div that displays this information in the UI. 
When I click on the div, I have a function that is fired that looks like this: 

```
    selectUser(clientUserId){

    // set assessments variable equal to the current team from the state
    let assessments = fromJS(this.state.suggestedUsers)

    let selectAssessor

    // set a variable called selectedUsers equal to the results of filtering over the current suggestedUsers from the state
    let selectedUsers = assessments.filter((obj) => {

        // store immutable retrieval of the client user id in a variable called userId
        let userId = obj.getIn(["user", "client_user_id"])

        // when the user clicks 'Add' user, if the id of the user matches the selected user id
        // the user, represented here by obj, is pushed into the selectedUsers array stored in the state.
        if(userId === clientUserId){
            return obj.setIn(["user", "selected"], true)
        }

        // If the user id is not equal to the selected user, that team member is kept in the
        // current team array represented by the state. 
        return userId !== clientUserId
    })

        // update the state with the current representation of the state determined by the user
        // selected team members for assessment requests
        this.setState({
          suggestedUsers: selectedUsers
        })

    }

```

The core of my question is this: 

I would like to update the value of the 'selected' key in the users object to false, when this function is invoked.

I'm aware that I can't mutate the List I'm filtering over directly, but I've tried may different approaches to getting the selected value updated (i.e. using updateIn, and setIn). I know I need to set the result of calling setIn to a variable, and return that to the List I'm filtering over, but I can't get the value to update in the existing List. Any help is greatly appreciated. Thanks!

I've verified that this works the way it should when I change the value manually. How can I change it with immutable by updating this one List.

=========================================================================

Thank you to the community for your feedback. Filtering, and mapping did turn out to be overkill. Using immutability-helper, I am able to update the selected value of a particular user at the index that is clicked. One caveat that was not mentioned is using merge to bring your updated data into your previous data. After updating with immutability helper, I push the updated value into an array, then make it a List, and merge it into my original data. Code below: 

```
let users = this.state.teamAssessments

let selectedArray = []

users.map((obj, index) => {

    let objId = obj.getIn(["user", "client_user_id"])

    if(objId === clientUserId){

        const selectedUser = update(this.state.teamAssessments.toJS(), {

            [index]: { 

                user : {

                    selected: {

                        $set: true

                    }

                }

            }

        })

        selectedArray.push(selectedUser)

    }

})

let updatedArray = fromJS(selectedArray).get(0)

let mergedData = users.merge(updatedArray)

this.setState({

    teamAssessments: mergedData

}) 

```