JSFiddle - React, Tailwind, and code Playground
by Jake Overall
JavaScript
//Dependency Injection Resolver
var listA = ['KittenService: Leetmeme:', 'Cyberportal Cyberportal: Ice', 'CamelCaser: KittenService', 'Fraudstream: Leetmeme Ice:'];
var listB = ['pacA: pacB', 'pacB', 'pacC: pacE', 'pacD: pacA', 'pacE: pacD'];
var listC = ['pacA: pacB'];
var diResolver = function (dlist) {
var dependencies = {};
var out = [];
for (var i = 0; i < dlist.length; i++) {
if (dlist[i].indexOf(':') > -1) {
var prop = dlist[i].slice(0, dlist[i].indexOf(':')).trim();
var value = dlist[i].slice(dlist[i].indexOf(':') + 1).trim();
dependencies[prop] = value;
} else {
out.push(dlist[i]);
}
}
out = out.concat(Object.keys(dependencies).sort(function (a, b) {
var arr = Object.keys(dependencies);
arr.splice(arr.indexOf(a));
for (var j = 0; j < arr.length; j++) {
if (dependencies[a] == arr[j]) {
return arr[j];
} else {
return a;
}
}
}));
return out;
};
console.log(diResolver(listA));
console.log(diResolver(listB));