javascript - 嵌套在 parentArray.map() 中的 Javascript childArray.filter() 没有过滤
问题描述
我想将更新后的数组返回到 state,所以我使用带有过滤器的 map,如下所示:
state.assignmentClusters.map(cluster => {
cluster.files.forEach(file => {
file.motifList.filter(motif =>{
return motif.motif_id !== state.motifIdToDelete;
});
});
});
因为我需要返回一个数组,所以我map()
在第一个数组上使用,第二个(文件)我只是遍历它而不期望改变任何东西,所以我使用forEach()
并在最后一个深度,我filter()
用来返回所有图案除了他们的 id 等于的那些state.motifIdToDelete
(仅供参考,两个 ID 都是字符串)。
PS,这段代码在一个 Vue 变异函数中,它允许我改变状态(就像 react 中的 reducer)。
我在这里做错了什么?
谢谢,伙计。
解决方案
我已经以不同的方式解决了这个问题,但我想将答案授予可以向我展示如何正确执行此操作的人filter()
这目前有效:
state.assignmentClusters.forEach(cluster => {
cluster.files.forEach(file => {
file.motifList.forEach((motif, index) =>{
if (motif.motif_id == state.motifIdToDelete) {
file.motifList.splice(index, 1)
}
});
});
});
推荐阅读
- android - 为动态类型实现自定义 GsonCoverterFactory/Deserializer
- php - 将自定义链接添加到 WordPress 主题网站
- android - 制作 android 电视遥控器按钮,如 netflix 按钮
- python - 在 ubuntu linux 上安装 tensorflow,protobuf 版本问题
- swift - 快速实现泛型方法
- c# - .net 核心应用程序在 linux docker 容器中解析小数
- java - 如何使用改造android解析json数组
- quickbooks - 没有 oauth 的 Quickbooks API 访问令牌
- spring-boot - 使用 Hikari 连接池的 Spring Boot
- c++ - 我应该在构造函数或成员方法中进行大量初始化工作吗?