javascript - 使用 JS 寻找我的过滤器函数的较短版本

标签 javascript arrays filter reactjs lodash

好的,如果文件的 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()来避免内部循环,并内联另一个样板来简化代码。

关于javascript - 使用 JS 寻找我的过滤器函数的较短版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35493110/

相关文章:

python - 在python中,是否有一种有效的方法来将一个数组与映射到另一个数组的元素分开?

filter - Twitter 流按位置过滤

excel - 文本过滤器对两个字符串,但排除一些可能性

javascript - 在扩展 Object 的 JavaScript ES6 类的构造函数中调用 super()

java - Java 中的 IntegerList 帮助

java - 如何使用 boolean 数组中的数据创建 char[]?

javascript - 检查对象是否具有基于数组的多个值

java - 是否可以在浏览器中进行路由跟踪?

javascript - 使用 javascript 在另一个文本框之前添加文本框

javascript - 辅助方法、ActionView 和 ActionController