Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function calcGenes(input) {
- let pattern = /([a-z!@#$?]+)=([\d]+)--([\d]+)<<([a-z]+)/g;
- let organismos = new Map();
- let exec;
- for (let line of input) {
- while(exec = pattern.exec(line)) {
- let geneName = exec[1].replace(/[!@#$?]/g, '');
- let nameLength = exec[2];
- let countOfGenes = exec[3];
- let organism = exec[4];
- if(geneName && nameLength && countOfGenes && organism && geneName.length === +nameLength) {
- if(!organismos.has(organism)) {
- organismos.set(organism, 0)
- }
- let sum = organismos.get(organism)
- organismos.set(organism, sum + +countOfGenes)
- }
- }
- }
- let result = [];
- let sortedOrganismos = Array.from(organismos.keys())
- .sort((k1, k2) => {
- return organismos.get(k2) - organismos.get(k1);
- })
- for (let key of sortedOrganismos) {
- result.push(`${key} has genome size of ${organismos.get(key)}`);
- }
- return result.join('\n');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement