Spaces:
Runtime error
Runtime error
| // API | |
| module.exports = state; | |
| /** | |
| * Creates initial state object | |
| * for iteration over list | |
| * | |
| * @param {array|object} list - list to iterate over | |
| * @param {function|null} sortMethod - function to use for keys sort, | |
| * or `null` to keep them as is | |
| * @returns {object} - initial state object | |
| */ | |
| function state(list, sortMethod) | |
| { | |
| var isNamedList = !Array.isArray(list) | |
| , initState = | |
| { | |
| index : 0, | |
| keyedList: isNamedList || sortMethod ? Object.keys(list) : null, | |
| jobs : {}, | |
| results : isNamedList ? {} : [], | |
| size : isNamedList ? Object.keys(list).length : list.length | |
| } | |
| ; | |
| if (sortMethod) | |
| { | |
| // sort array keys based on it's values | |
| // sort object's keys just on own merit | |
| initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) | |
| { | |
| return sortMethod(list[a], list[b]); | |
| }); | |
| } | |
| return initState; | |
| } | |