Пытаясь написать логику, если путь к объекту одинаков, необходимо создать один объект в массиве с name
разделенными запятыми. Как использовать Reduce для достижения этой задачи?
main.js
var data = [
{id: "param", name: "IGetRefillMultiPlanParam", path: "@combinator-interfaces/dist/drug/GetRefills/GetRefills.Model.ts"}
{id: "details", name: "IRefills", path: "@combinator-interfaces/dist/drug/GetRefills/GetRefills.Model.ts"}
{id: "header", name: "IHeader", path: "@combinator-interfaces/dist/common/Header.Model.ts"}
]
function buildInterface (data) {
var interfaceArray = [];
data.reduce(function(acc,arr){
var filePath = acc.path.replace('.ts','');
var imports = data.map(d => d.name).join(', ');
if(acc.path.includes(arr.path)) {
interfaceArray.push(`import { ${imports} } from '${filePath}';\n\n`);
}
});
return interfaceArray;
}
Ожидаемый результат
[
'import { IGetRefillMultiPlanParam, IRefills} from "@combinator-interfaces/dist/drug/GetRefills/GetRefills.Model"',
'import { IHeader } from "@combinator-interfaces/dist/common/Header.Model"'
]