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