[英]Nested Loop Javascript Filter ES6
How to filter nested array in this jSon, I need to filter publisher --> magazines ---> enabled True object Data only如何过滤此 jSon 中的嵌套数组,我需要过滤发布者 --> 杂志 ---> 启用 True object 仅数据
original JSON原装 JSON
{
"slug": "test",
"logo": "dd3d769a86d4c8a91dcbf05bf22e04eda7b73e04.png",
"publishers": [
{
"name": "publisher 1",
"magazines": [
{
"name": "name-1",
"startDate": "2020-09-01T00:00:00+0000",
"endDate": "2021-09-02T00:00:00+0000",
"enabled": false,
},
{
"name": "name- 2",
"startDate": "2020-09-11T00:00:00+0000",
"endDate": "2020-09-18T00:00:00+0000",
"enabled": true,
},
{
"name": "name- 2",
"startDate": null,
"endDate": null,
"enabled": false,
}]
},
{
"name": "publisher 2",
"magazines": [
{
"name": "name- 1",
"startDate": null,
"endDate": null,
"enabled": true,
}
{
"name": "name - 2",
"startDate": null,
"endDate": null,
"enabled": false,
}]
}],
"locale": "in",
}
OutPut Json OutPut Json
{
"slug": "test",
"logo": "dd3d769a86d4c8a91dcbf05bf22e04eda7b73e04.png",
"publishers": [
{
"name": "publisher 1",
"magazines": [
{
"name": "name- 2",
"startDate": "2020-09-11T00:00:00+0000",
"endDate": "2020-09-18T00:00:00+0000",
"enabled": true,
},
]
},
{
"name": "publisher 2",
"magazines": [
{
"name": "name- 1",
"startDate": null,
"endDate": null,
"enabled": true,
}]
}],
"locale": "in"
}
Thanks in advance提前致谢
Same as any other array: With Array.filter与任何其他数组相同:使用Array.filter
let origdata = {...}
for (let publisher of origdata.publishers) {
publisher.magazines = publisher.magazines.filter(x => x.enabled === true);
}
with map and filter:使用 map 和过滤器:
const testObj = {yourObject...}
testObj.publishers.map(publisher => (publisher.magazines.filter(magazine => magazine.enabled === true)[0]))
This is your correct json这是您正确的 json
{
"slug": "test",
"logo": "dd3d769a86d4c8a91dcbf05bf22e04eda7b73e04.png",
"publishers": [
{
"name": "publisher 1",
"magazines": [
{
"name": "name-1",
"startDate": "2020-09-01T00:00:00+0000",
"endDate": "2021-09-02T00:00:00+0000",
"enabled": false,
},
{
"name": "name- 2",
"startDate": "2020-09-11T00:00:00+0000",
"endDate": "2020-09-18T00:00:00+0000",
"enabled": true,
},
{
"name": "name- 2",
"startDate": null,
"endDate": null,
"enabled": false,
}]
},
{
"name": "publisher 2",
"magazines": [
{
"name": "name- 1",
"startDate": null,
"endDate": null,
"enabled": true,
},
{
"name": "name - 2",
"startDate": null,
"endDate": null,
"enabled": false,
}]
}],
"locale": "in",
}
and try this code:并尝试以下代码:
var testObj={your Json data...};
for(i=0; i < testObj.publishers.length; i++){
if(testObj.publishers[i].enabled == false){
//console.log('exist');
testObj.publishers.splice(i, 1);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.