Created
November 30, 2017 10:57
-
-
Save DaveKin/187547d2ada93bdbf0744cd0721a378c to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/citacox
This file contains 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
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width"> | |
<title>JS Bin</title> | |
</head> | |
<body> | |
<script src="https://cdn.jsdelivr.net/momentjs/2.14.1/moment-with-locales.min.js"></script> | |
<script id="jsbin-javascript"> | |
"use strict"; | |
var budgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "9815d542-5528-11e6-9416-0a20dd60c901", "name": "Nov 17", "period": "2017-11-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var unsortedBudgets = [{ "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }, { "key": "9815d542-5528-11e6-9416-0a20dd60c901", "name": "Nov 17", "period": "2017-11-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }]; | |
var noCurrentBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var noPastBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }]; | |
var noFutureBudgets = [{ "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var noMonthlyBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "2017", "name": "2017", "period": "2017", "default": false }]; | |
var noBudgets = []; | |
findDefault = function (budgets) { | |
var data = budgets.sort(function (a, b) { | |
return a.period <= b.period ? 1 : -1; | |
}); | |
var lastFuture = undefined; | |
for (var i = 0; i < data.length; i++) { | |
if (data[i].period.length > 4) { | |
var thisMoment = moment(data[i].period); | |
if (thisMoment.isBefore(moment())) { | |
return data[i]; | |
} else { | |
lastFuture = data[i]; | |
} | |
} | |
} | |
return lastFuture; | |
}; | |
console.log('budgets', findDefault(budgets)); | |
console.log('unsorted budgets', findDefault(unsortedBudgets)); | |
console.log('no current budget', findDefault(noCurrentBudgets)); | |
console.log('no past budgets', findDefault(noPastBudgets)); | |
console.log('no future budgets', findDefault(noFutureBudgets)); | |
console.log('no monthly budgets', findDefault(noMonthlyBudgets)); | |
console.log('no budgets', findDefault(noBudgets)); | |
</script> | |
<script id="jsbin-source-javascript" type="text/javascript">let budgets = [{"key":"2018","name":"2018","period":"2018","default":true},{"key":"1ac445b8-c382-11e6-836e-02b3a21687eb","name":"Jun 18","period":"2018-06-01","default":false},{"key":"14d78eef-c382-11e6-836e-02b3a21687eb","name":"May 18","period":"2018-05-01","default":false},{"key":"0fa4fec2-c382-11e6-836e-02b3a21687eb","name":"Apr 18","period":"2018-04-01","default":false},{"key":"02e08ad4-c382-11e6-836e-02b3a21687eb","name":"Mar 18","period":"2018-03-01","default":false},{"key":"fc2134e4-c381-11e6-836e-02b3a21687eb","name":"Feb 18","period":"2018-02-01","default":false},{"key":"f5802f0a-c381-11e6-836e-02b3a21687eb","name":"Jan 18","period":"2018-01-01","default":false},{"key":"2017","name":"2017","period":"2017","default":false},{"key":"9815d59d-5528-11e6-9416-0a20dd60c901","name":"Dec 17","period":"2017-12-01","default":false},{"key":"9815d542-5528-11e6-9416-0a20dd60c901","name":"Nov 17","period":"2017-11-01","default":false},{"key":"9815d442-5528-11e6-9416-0a20dd60c901","name":"Oct 17","period":"2017-10-01","default":false},{"key":"980dc705-5528-11e6-9416-0a20dd60c901","name":"Sep 17","period":"2017-09-01","default":false},{"key":"a4225b5c-e914-6727-6448-3815c77add90","name":"Aug 17","period":"2017-08-01","default":false},{"key":"1c558da0-d7ca-44b0-a932-e61bdef36d92","name":"Jul 17","period":"2017-07-01","default":false},{"key":"b17c4308-5dae-c3ec-7a60-d6989e54a0b7","name":"Jun 17","period":"2017-06-01","default":false},{"key":"a0ac1a97-f94e-14d7-99a3-7477d7c193ef","name":"May 17","period":"2017-05-01","default":false},{"key":"46ae9848-e5a2-31b9-d9e3-7b772d80e6cd","name":"Apr 17","period":"2017-04-01","default":false},{"key":"9dae4464-9d03-941d-d6e8-530b4c907232","name":"Mar 17","period":"2017-03-01","default":false},{"key":"58fb6adb-00e9-1407-447d-41082c9964cf","name":"Feb 17","period":"2017-02-01","default":false},{"key":"3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2","name":"Jan 17","period":"2017-01-01","default":false}] | |
let unsortedBudgets = [ | |
{"key":"3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2","name":"Jan 17","period":"2017-01-01","default":false}, | |
{"key":"9815d542-5528-11e6-9416-0a20dd60c901","name":"Nov 17","period":"2017-11-01","default":false}, | |
{"key":"9815d442-5528-11e6-9416-0a20dd60c901","name":"Oct 17","period":"2017-10-01","default":false}, | |
{"key":"980dc705-5528-11e6-9416-0a20dd60c901","name":"Sep 17","period":"2017-09-01","default":false}, | |
{"key":"1ac445b8-c382-11e6-836e-02b3a21687eb","name":"Jun 18","period":"2018-06-01","default":false}, | |
{"key":"58fb6adb-00e9-1407-447d-41082c9964cf","name":"Feb 17","period":"2017-02-01","default":false}, | |
{"key":"02e08ad4-c382-11e6-836e-02b3a21687eb","name":"Mar 18","period":"2018-03-01","default":false}, | |
{"key":"fc2134e4-c381-11e6-836e-02b3a21687eb","name":"Feb 18","period":"2018-02-01","default":false}, | |
{"key":"f5802f0a-c381-11e6-836e-02b3a21687eb","name":"Jan 18","period":"2018-01-01","default":false}, | |
{"key":"0fa4fec2-c382-11e6-836e-02b3a21687eb","name":"Apr 18","period":"2018-04-01","default":false}, | |
{"key":"1c558da0-d7ca-44b0-a932-e61bdef36d92","name":"Jul 17","period":"2017-07-01","default":false}, | |
{"key":"b17c4308-5dae-c3ec-7a60-d6989e54a0b7","name":"Jun 17","period":"2017-06-01","default":false}, | |
{"key":"a0ac1a97-f94e-14d7-99a3-7477d7c193ef","name":"May 17","period":"2017-05-01","default":false}, | |
{"key":"46ae9848-e5a2-31b9-d9e3-7b772d80e6cd","name":"Apr 17","period":"2017-04-01","default":false}, | |
{"key":"2018","name":"2018","period":"2018","default":true}, | |
{"key":"2017","name":"2017","period":"2017","default":false}, | |
{"key":"14d78eef-c382-11e6-836e-02b3a21687eb","name":"May 18","period":"2018-05-01","default":false}, | |
{"key":"9815d59d-5528-11e6-9416-0a20dd60c901","name":"Dec 17","period":"2017-12-01","default":false}, | |
{"key":"a4225b5c-e914-6727-6448-3815c77add90","name":"Aug 17","period":"2017-08-01","default":false}, | |
{"key":"9dae4464-9d03-941d-d6e8-530b4c907232","name":"Mar 17","period":"2017-03-01","default":false}, | |
] | |
let noCurrentBudgets = [{"key":"2018","name":"2018","period":"2018","default":true},{"key":"1ac445b8-c382-11e6-836e-02b3a21687eb","name":"Jun 18","period":"2018-06-01","default":false},{"key":"14d78eef-c382-11e6-836e-02b3a21687eb","name":"May 18","period":"2018-05-01","default":false},{"key":"0fa4fec2-c382-11e6-836e-02b3a21687eb","name":"Apr 18","period":"2018-04-01","default":false},{"key":"02e08ad4-c382-11e6-836e-02b3a21687eb","name":"Mar 18","period":"2018-03-01","default":false},{"key":"fc2134e4-c381-11e6-836e-02b3a21687eb","name":"Feb 18","period":"2018-02-01","default":false},{"key":"f5802f0a-c381-11e6-836e-02b3a21687eb","name":"Jan 18","period":"2018-01-01","default":false},{"key":"2017","name":"2017","period":"2017","default":false},{"key":"9815d59d-5528-11e6-9416-0a20dd60c901","name":"Dec 17","period":"2017-12-01","default":false},{"key":"9815d442-5528-11e6-9416-0a20dd60c901","name":"Oct 17","period":"2017-10-01","default":false},{"key":"980dc705-5528-11e6-9416-0a20dd60c901","name":"Sep 17","period":"2017-09-01","default":false},{"key":"a4225b5c-e914-6727-6448-3815c77add90","name":"Aug 17","period":"2017-08-01","default":false},{"key":"1c558da0-d7ca-44b0-a932-e61bdef36d92","name":"Jul 17","period":"2017-07-01","default":false},{"key":"b17c4308-5dae-c3ec-7a60-d6989e54a0b7","name":"Jun 17","period":"2017-06-01","default":false},{"key":"a0ac1a97-f94e-14d7-99a3-7477d7c193ef","name":"May 17","period":"2017-05-01","default":false},{"key":"46ae9848-e5a2-31b9-d9e3-7b772d80e6cd","name":"Apr 17","period":"2017-04-01","default":false},{"key":"9dae4464-9d03-941d-d6e8-530b4c907232","name":"Mar 17","period":"2017-03-01","default":false},{"key":"58fb6adb-00e9-1407-447d-41082c9964cf","name":"Feb 17","period":"2017-02-01","default":false},{"key":"3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2","name":"Jan 17","period":"2017-01-01","default":false}] | |
let noPastBudgets = [{"key":"2018","name":"2018","period":"2018","default":true},{"key":"1ac445b8-c382-11e6-836e-02b3a21687eb","name":"Jun 18","period":"2018-06-01","default":false},{"key":"14d78eef-c382-11e6-836e-02b3a21687eb","name":"May 18","period":"2018-05-01","default":false},{"key":"0fa4fec2-c382-11e6-836e-02b3a21687eb","name":"Apr 18","period":"2018-04-01","default":false},{"key":"02e08ad4-c382-11e6-836e-02b3a21687eb","name":"Mar 18","period":"2018-03-01","default":false},{"key":"fc2134e4-c381-11e6-836e-02b3a21687eb","name":"Feb 18","period":"2018-02-01","default":false},{"key":"f5802f0a-c381-11e6-836e-02b3a21687eb","name":"Jan 18","period":"2018-01-01","default":false},{"key":"2017","name":"2017","period":"2017","default":false},{"key":"9815d59d-5528-11e6-9416-0a20dd60c901","name":"Dec 17","period":"2017-12-01","default":false}] | |
let noFutureBudgets = [{"key":"9815d442-5528-11e6-9416-0a20dd60c901","name":"Oct 17","period":"2017-10-01","default":false},{"key":"980dc705-5528-11e6-9416-0a20dd60c901","name":"Sep 17","period":"2017-09-01","default":false},{"key":"a4225b5c-e914-6727-6448-3815c77add90","name":"Aug 17","period":"2017-08-01","default":false},{"key":"1c558da0-d7ca-44b0-a932-e61bdef36d92","name":"Jul 17","period":"2017-07-01","default":false},{"key":"b17c4308-5dae-c3ec-7a60-d6989e54a0b7","name":"Jun 17","period":"2017-06-01","default":false},{"key":"a0ac1a97-f94e-14d7-99a3-7477d7c193ef","name":"May 17","period":"2017-05-01","default":false},{"key":"46ae9848-e5a2-31b9-d9e3-7b772d80e6cd","name":"Apr 17","period":"2017-04-01","default":false},{"key":"9dae4464-9d03-941d-d6e8-530b4c907232","name":"Mar 17","period":"2017-03-01","default":false},{"key":"58fb6adb-00e9-1407-447d-41082c9964cf","name":"Feb 17","period":"2017-02-01","default":false},{"key":"3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2","name":"Jan 17","period":"2017-01-01","default":false}] | |
let noMonthlyBudgets = [{"key":"2018","name":"2018","period":"2018","default":true},{"key":"2017","name":"2017","period":"2017","default":false}] | |
let noBudgets = [] | |
findDefault = (budgets) => { | |
let data = budgets.sort((a,b)=>{return (a.period <= b.period) ? 1 : -1}) | |
let lastFuture | |
for(var i=0; i< data.length; i++){ | |
if(data[i].period.length>4){ | |
let thisMoment = moment(data[i].period) | |
if(thisMoment.isBefore(moment())){ | |
return data[i] | |
} else { | |
lastFuture = data[i] | |
} | |
} | |
} | |
return lastFuture | |
} | |
console.log('budgets',findDefault(budgets)) | |
console.log('unsorted budgets',findDefault(unsortedBudgets)) | |
console.log('no current budget',findDefault(noCurrentBudgets)) | |
console.log('no past budgets',findDefault(noPastBudgets)) | |
console.log('no future budgets',findDefault(noFutureBudgets)) | |
console.log('no monthly budgets',findDefault(noMonthlyBudgets)) | |
console.log('no budgets',findDefault(noBudgets)) | |
</script></body> | |
</html> |
This file contains 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"; | |
var budgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "9815d542-5528-11e6-9416-0a20dd60c901", "name": "Nov 17", "period": "2017-11-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var unsortedBudgets = [{ "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }, { "key": "9815d542-5528-11e6-9416-0a20dd60c901", "name": "Nov 17", "period": "2017-11-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }]; | |
var noCurrentBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }, { "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var noPastBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "1ac445b8-c382-11e6-836e-02b3a21687eb", "name": "Jun 18", "period": "2018-06-01", "default": false }, { "key": "14d78eef-c382-11e6-836e-02b3a21687eb", "name": "May 18", "period": "2018-05-01", "default": false }, { "key": "0fa4fec2-c382-11e6-836e-02b3a21687eb", "name": "Apr 18", "period": "2018-04-01", "default": false }, { "key": "02e08ad4-c382-11e6-836e-02b3a21687eb", "name": "Mar 18", "period": "2018-03-01", "default": false }, { "key": "fc2134e4-c381-11e6-836e-02b3a21687eb", "name": "Feb 18", "period": "2018-02-01", "default": false }, { "key": "f5802f0a-c381-11e6-836e-02b3a21687eb", "name": "Jan 18", "period": "2018-01-01", "default": false }, { "key": "2017", "name": "2017", "period": "2017", "default": false }, { "key": "9815d59d-5528-11e6-9416-0a20dd60c901", "name": "Dec 17", "period": "2017-12-01", "default": false }]; | |
var noFutureBudgets = [{ "key": "9815d442-5528-11e6-9416-0a20dd60c901", "name": "Oct 17", "period": "2017-10-01", "default": false }, { "key": "980dc705-5528-11e6-9416-0a20dd60c901", "name": "Sep 17", "period": "2017-09-01", "default": false }, { "key": "a4225b5c-e914-6727-6448-3815c77add90", "name": "Aug 17", "period": "2017-08-01", "default": false }, { "key": "1c558da0-d7ca-44b0-a932-e61bdef36d92", "name": "Jul 17", "period": "2017-07-01", "default": false }, { "key": "b17c4308-5dae-c3ec-7a60-d6989e54a0b7", "name": "Jun 17", "period": "2017-06-01", "default": false }, { "key": "a0ac1a97-f94e-14d7-99a3-7477d7c193ef", "name": "May 17", "period": "2017-05-01", "default": false }, { "key": "46ae9848-e5a2-31b9-d9e3-7b772d80e6cd", "name": "Apr 17", "period": "2017-04-01", "default": false }, { "key": "9dae4464-9d03-941d-d6e8-530b4c907232", "name": "Mar 17", "period": "2017-03-01", "default": false }, { "key": "58fb6adb-00e9-1407-447d-41082c9964cf", "name": "Feb 17", "period": "2017-02-01", "default": false }, { "key": "3a3e1a29-049b-9fd0-55e0-fe3dd6d03bd2", "name": "Jan 17", "period": "2017-01-01", "default": false }]; | |
var noMonthlyBudgets = [{ "key": "2018", "name": "2018", "period": "2018", "default": true }, { "key": "2017", "name": "2017", "period": "2017", "default": false }]; | |
var noBudgets = []; | |
findDefault = function (budgets) { | |
var data = budgets.sort(function (a, b) { | |
return a.period <= b.period ? 1 : -1; | |
}); | |
var lastFuture = undefined; | |
for (var i = 0; i < data.length; i++) { | |
if (data[i].period.length > 4) { | |
var thisMoment = moment(data[i].period); | |
if (thisMoment.isBefore(moment())) { | |
return data[i]; | |
} else { | |
lastFuture = data[i]; | |
} | |
} | |
} | |
return lastFuture; | |
}; | |
console.log('budgets', findDefault(budgets)); | |
console.log('unsorted budgets', findDefault(unsortedBudgets)); | |
console.log('no current budget', findDefault(noCurrentBudgets)); | |
console.log('no past budgets', findDefault(noPastBudgets)); | |
console.log('no future budgets', findDefault(noFutureBudgets)); | |
console.log('no monthly budgets', findDefault(noMonthlyBudgets)); | |
console.log('no budgets', findDefault(noBudgets)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment