Created
July 14, 2017 11:24
-
-
Save nikolasleblanc/bf4f37c25b379dc5e4abf0137491968e to your computer and use it in GitHub Desktop.
JS Bin // source http://jsbin.com/cuniti
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.22.1/ramda.min.js"></script> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width"> | |
<title>JS Bin</title> | |
</head> | |
<body> | |
<script id="jsbin-javascript"> | |
"use strict"; | |
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } | |
var inputArray = ["blah", "param", "12dh", "-fdjskl", "8-4", "Peter", "66", "Pan"]; | |
var testArray = ['8-4', '66', '12dh', '-fdjskl', 'blah', 'param', 'Peter', 'Pan']; | |
var addItemTo = function addItemTo(key, item, acc) { | |
acc[key] = acc[key] || []; | |
acc[key] = acc[key].concat(item); | |
return acc; | |
}; | |
var REGEX_DIGIT = /^\d.*/; | |
var REGEX_STARTS_WITH_P = /^P/; | |
var map = inputArray.reduce(function (acc, item) { | |
if (item.search(REGEX_DIGIT) !== -1) { | |
acc = addItemTo('digits', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) === -1) { | |
acc = addItemTo('notP', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) !== -1) { | |
acc = addItemTo('totesP', item, acc); | |
} | |
return acc; | |
}, {}); | |
map['digits'].sort().reverse(); | |
map['notP'].sort(); | |
map['totesP'].sort().reverse(); | |
var outputArray = [].concat(_toConsumableArray(map['digits']), _toConsumableArray(map['notP']), _toConsumableArray(map['totesP'])); | |
console.log(outputArray, testArray); | |
</script> | |
<script id="jsbin-source-javascript" type="text/javascript">const inputArray = ["blah", "param", "12dh", "-fdjskl", "8-4", "Peter", "66", "Pan"]; | |
const testArray = ['8-4', '66', '12dh', '-fdjskl', 'blah', 'param', 'Peter', 'Pan']; | |
const addItemTo = (key, item, acc) => { | |
acc[key] = acc[key] || []; | |
acc[key] = acc[key].concat(item); | |
return acc; | |
}; | |
const REGEX_DIGIT = /^\d.*/; | |
const REGEX_STARTS_WITH_P = /^P/; | |
const map = inputArray.reduce((acc, item) => { | |
if (item.search(REGEX_DIGIT) !== -1) { | |
acc = addItemTo('digits', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) === -1) { | |
acc = addItemTo('notP', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) !== -1) { | |
acc = addItemTo('totesP', item, acc); | |
} | |
return acc; | |
}, {}); | |
map['digits'].sort().reverse(); | |
map['notP'].sort(); | |
map['totesP'].sort().reverse(); | |
const outputArray = [ | |
...map['digits'], | |
...map['notP'], | |
...map['totesP'] | |
] | |
console.log(outputArray, testArray);</script></body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } | |
var inputArray = ["blah", "param", "12dh", "-fdjskl", "8-4", "Peter", "66", "Pan"]; | |
var testArray = ['8-4', '66', '12dh', '-fdjskl', 'blah', 'param', 'Peter', 'Pan']; | |
var addItemTo = function addItemTo(key, item, acc) { | |
acc[key] = acc[key] || []; | |
acc[key] = acc[key].concat(item); | |
return acc; | |
}; | |
var REGEX_DIGIT = /^\d.*/; | |
var REGEX_STARTS_WITH_P = /^P/; | |
var map = inputArray.reduce(function (acc, item) { | |
if (item.search(REGEX_DIGIT) !== -1) { | |
acc = addItemTo('digits', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) === -1) { | |
acc = addItemTo('notP', item, acc); | |
} else if (item.search(REGEX_STARTS_WITH_P) !== -1) { | |
acc = addItemTo('totesP', item, acc); | |
} | |
return acc; | |
}, {}); | |
map['digits'].sort().reverse(); | |
map['notP'].sort(); | |
map['totesP'].sort().reverse(); | |
var outputArray = [].concat(_toConsumableArray(map['digits']), _toConsumableArray(map['notP']), _toConsumableArray(map['totesP'])); | |
console.log(outputArray, testArray); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment