javascript - 如何在 Javascript 中为复杂的对象数组链接映射和过滤方法?

标签 javascript arrays dictionary filter chaining

我有一个数组如下:

var arr = [
    {                                                   
        subArray1:[
            {
                subArray2:[
                    {
                        value: 1
                    },
                    {
                        value: 0
                    }
                ]
            },
            {
                subArray2:[
                    {
                        value: 1
                    },
                    {
                        value: 0
                    }
                ]
            }
        ]
    }
];

我想过滤掉 subArray2 中包含值 1 的所有对象并返回整个数组。 预期输出如下:

newArr= [
    {                                                   
        subArray1:[
            {
                subArray2:[
                    {
                        value: 1
                    }
                ]
            },
            {
                subArray2:[
                    {
                        value: 1
                    }
                ]
            }
        ]
    }
]

我无法以这样的方式链接映射和过滤方法以获得上述所需的输出。 请帮助我实现这一目标。

最佳答案

您需要映射每个 arr 项和每个 arr.subArray1 项,然后过滤 subArray2:

var arr = [
    {                                                   
        subArray1:[
            {
                subArray2:[
                    {
                        value: 1
                    },
                    {
                        value: 0
                    }
                ]
            },
            {
                subArray2:[
                    {
                        value: 1
                    },
                    {
                        value: 0
                    }
                ]
            }
        ]
    }
];

console.log(
    arr.map(({...el}) => {
        el.subArray1 = el.subArray1.map(({...el1}) => {
            el1.subArray2 = el1.subArray2.filter(({value}) => value !== 0);
            return el1;
        });
        return el;
    })
)

关于javascript - 如何在 Javascript 中为复杂的对象数组链接映射和过滤方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67812397/

相关文章:

javascript - 基于 Javascript if else 语句更改样式表

javascript - 如何为基于 Titanium 构建的 iPhone 应用程序放置广告

java - 尝试将整数数组转换为列表

python - 如何将 Python 字典存储为环境变量

python - 读/写一个文件,其中每一行都是一个字典的列表

python - 包含字典的 sqlalchemy 映射对象

javascript - jQuery new Date() 在 Safari 中不起作用

javascript - 在 JavaScript 中使用 eval 运行一组闭包

c - 从 int 数组中删除值

Python 'pointer arithmetic' - 快速排序