【发布时间】:2021-03-23 08:47:29
【问题描述】:
我通过对象数组中对象的“sourceType”属性删除了所有重复项,但我无法将“dataType”属性从重复项复制到原始项,请检查我在输出和预期输出中的期望
const datasources = [ "sourceType2 /4 (Metric) Custom", "sourceType2 /4 (Datamap) Custom", "sourceType2 /4 (Event) Custom", "sourceType2 /4 (All) Custom", "sourceTYpe3 /4 (Metric) Custom", "sourceTYpe3 /4 (Datamap) Custom", "sourceTYpe3 /4 (Event) Custom" ]
function transformDataSources(datasource) {
const transformation = datasource.map(str => ({
sourceType: str.substr(0, str.indexOf("/")).split(" ").join(""),
policyReferences: [{
dataType: (str.match(/\((.*)\)/).pop().split(" ").join(""))
}]
})).filter((item, index, array) => array.map(mapItem => mapItem.sourceType)
.indexOf(item.sourceType) === index)
console.log(transformation)
}
transformDataSources(datasources)
输出:
[{
policyReferences: [{
dataType: "Metric"
}],
sourceType: "sourceType2"
}, {
policyReferences: [{
dataType: "Metric"
}],
sourceType: "sourceTYpe3"
}]
预期输出:
[{
policyReferences: [
{
dataType: "Metric"
},
{
dataType: "Datamap"
},
{
dataType: "All"
},
{
dataType: "Event"
}
],
sourceType: "sourceType2"
}, {
policyReferences: [
{
dataType: "Metric"
},
{
dataType: "Event"
},
{
dataType: "Datamap"
},
],
sourceType: "sourceTYpe3"
}]
【问题讨论】:
-
试过调试了吗?您的见解是什么?
标签: javascript arrays algorithm