如何解决如何使用JavaScript ES6过滤和转换此集合?
我有一个查询函数,该函数输出元素的集合,具有简化的结构,如下所示:
vcTabs has 5 objects
A
B
C
D
E
我如何仅使用JavaScript代码或ES6函数(其中嵌套在var obj = [
{
body: [
{
prop1: 2,prop2: 17,// ...more props,date: '2020-08-30',},{
prop1: 2,prop2: 1,date: '2020-08-29',// ...
],// ...additional elements,slug: 'Bay'
},// ...
]
数组中的date
的值是今天的今天)有效地过滤和转换此结果对象元素被排除?
这是我的预期结果:
body
编辑:为清楚起见,
-
var obj = [ { prop1: 2,slug: 'Bay' },// ... ]
数组中符合条件(今天是body
)的对象应合并到父对象。 - 该结构保证不会有重复的属性。每个
date
的{{1}}数组中最多只有一个对象。 -
body
,date
,slug
等都是唯一索引,也不应引起重复的属性问题。 - 每个对象中的
prop1
数组和集合本身会很大,因此,如果解决方案效率很高,我将不胜感激。
还应该清楚的是,如果今天的prop2
与body
数组中的任何对象都不匹配,则应跳过父对象。
例如:
date
预期结果将是:
body
解决方法
这将提供所需的结果
var today = "2020-08-30";
var resultObj = [];
var obj = [
{
body: [
{
prop1: 2,prop2: 17,// ...more props,date: '2020-08-30',},{
prop1: 2,prop2: 1,date: '2020-08-29',// ...
],// ...additional elements,slug: 'Bay'
},// ...
]
for(var objData of obj) {
for(var bodyData of objData.body) {
if(bodyData.date == today) {
bodyData.slug = objData.slug;
resultObj.push(bodyData);
}
}
}
console.log(resultObj)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。