js实现数组对象的多选删除

js实现数组对象的多选删除

delete = () => {
     

        const Ids = this.state.selectRows.map(item => {
     
            return item.Id;
        });//返回选中行的id数组
        if (Ids.length === 1) {
     //如果是删除一个
            const Id = this.state.selectRows[0].Id;
            //找出选中的数据在所有数据的下标
            let indexdel = this.state.data.findIndex(item => item.Id === Id);
           
            this.state.data.splice(indexdel, 1);
            let data =  this.state.data;
            this.setState({
     
                data,
                selectRows: []
            });
        } else {
     //选中多条数据
            let alldata = this.state.data;
            for (let i= alldata.length - 1; i>= 0; i--) {
     //逆向循环全部数据
                let id = alldata[i].Id;
                for (let j = Ids.length; j >= 0; j--) {
     
                //把全部数据的每个id和选中数据的id一一对比
                    if (id=== Ids[j]) {
     //如果id相等
                        alldata.splice(index, 1);//全部数据删除这条数据
                    }
                }
            }
            let data = alldata;
            this.setState({
     
                data,
                selectRows: []
            });
        }
    };

你可能感兴趣的:(程序猿,js,javascript)