gpt4 book ai didi

javascript - 在嵌套的对象数组中使用过滤器

转载 作者:行者123 更新时间:2023-11-30 11:26:12 28 4
gpt4 key购买 nike

我想要一个数组,该数组根据选中的属性返回某些属性。

const data = [
{
"param": "type",
"id": 6,
"data": [
{
"name": "Collect",
"filterKey": "collect",
"checked": false
},
{
"name": "Redeem",
"filterKey": "redeem",
"checked": true
}
]
},
{
"param": "country",
"id": 5,
"data": [
{
"name": "Malaysia",
"filterKey": "my",
"checked": true
},
{
"name": "Singapore",
"filterKey": "sg",
"checked": false
}
]
}
]

为什么我下面的代码不起作用?这是我用于检查或取消检查事件的函数

const checkedKeys = data.map(o => {
return o.data.filter(o2 => {
return o2.checked === true
}).filterKey
})

对于上述情况,我希望得到 ['my', 'redeem']

最佳答案

使用 array.protoype.concatarray.protoype.filterarray.protoype.mapspread< 的解决方案/em> ES6 的运算符:

var data = [ { "param": "type", "id": 6, "data": [{"name": "Collect", "filterKey": "collect", "checked": false }, {"name": "Redeem", "filterKey": "redeem", "checked": true }]}, {"param": "country","id": 5,"data": [{"name": "Malaysia","filterKey": "my","checked": true}, {"name": "Singapore","filterKey": "sg","checked": false}]}];

var result = [].concat(...data.map(o => o.data)).filter(d => d.checked).map(d => d.filterKey);
console.log(result);

关于javascript - 在嵌套的对象数组中使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47976263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com