好的,如果文件的ID位于ID数组中,则我有此工作方法可以删除文件:

   deleteFiles(arrayOfIds) {
        let allFiles;
        for (let i = 0; i < arrayOfIds.length; i++) {
            allFiles = this.state.allFiles.filter((file) => {
                return file.id !== arrayOfIds[i];
            });
        }
        this.setState({allFiles});
    }


它可以工作,但是仅使用lodash或Vanilla JS的较短版本是什么?

谢谢你的帮助。

最佳答案

这样的事情应该工作:

  deleteFiles(arrayOfIds) {
        this.setState({
           allFiles: this.state.allFiles.filter(
              file=> arrayOfIds.indexOf(file.id) === -1
        )});
  }


它使用[].indexOf()避免内部循环,并内联另一个样板以简化代码。

10-06 07:28