从阵列中删除对象

时间:2018-11-07 17:28:16

标签: arrays reactjs object

我正在开发一个可以向用户添加组的应用程序。您可以从列表中选择一个组,该组将显示在其上方。 (See this photo

我现在希望您只能在下拉菜单中看到您不属于的组。

 constructor(props) {
        super(props)
        this.state = {
            groups: [],
            selectedGroups: [],
            group: '',
            isLoading: true,
            show: false
        };
        //bind

        this.getGroups = this.getGroups.bind(this);
        this.addGroup = this.addGroup.bind(this);
    }


//this function will be executed when clicking on button
    addGroup(e) {
        e.preventDefault();
        this.setState({
            selectedGroups: [...this.state.selectedGroups, this.state.group], //hier worden de groepen van die gebruiker in geplaatst
            groups: [] //hier moet iets gebeuren dat this.state.group wordt verwijdert uit de lijst
        })}

我的财产分组如下:

[{"id":1,"company_id":1,"name":"Support","created_at":null,"updated_at":null},

{"id":2,"company_id":1,"name":"Administrator","created_at":null,"updated_at":null},

{"id":3,"company_id":1,"name":"Redacteur","created_at":null,"updated_at":null}]

我的媒体资源组是单击按钮时选择的组。

示例:如果我选择管理员并单击按钮,则属性组将以“管理员”作为值。然后,管理员将被添加到Array selectedGroups中。现在,我希望将名称为“ Administrator”的对象从groups数组中删除。

然后,属性组必须看起来像这样:

{"id":2,"company_id":1,"name":"Administrator","created_at":null,"updated_at":null},    
    {"id":3,"company_id":1,"name":"Redacteur","created_at":null,"updated_at":null}]

如何从对象数组中删除对象?

1 个答案:

答案 0 :(得分:2)

在我看来,您需要使用以下方法在数组中找到要删除的元素的索引:

const index = array.findIndex(value => value.id === id);

,然后删除该索引:

const result = array.splice(index, 1);

array是要删除对象的数组,id是应删除对象的ID。您还可以在进行findIndex之前检查splice是否已经建立了某物,是否没有建立的findIndex会返回-1

findIndex doc ref