UNPKG

emath

Version:
144 lines 3.92 kB
/** * @method * @file compare.js * @desc For compare max and min. * @createDate 2018.7.11. * @author yhzheng */ "use strict"; /** * @method * @param {array} numbers A array * @returns The max number of numbers * @desc To get the max number of numbers */ function max(numbers) { var maxNum,number; if (typeof numbers[0] === "number"){ maxNum = numbers[0]; number = numbers[0]; } else { maxNum = numbers[0].value(); number = numbers[0]; } for (var i in numbers) { if (typeof numbers[i] === "number") { if (numbers[i] > maxNum) { maxNum = numbers[i]; number = numbers[i]; } } else { if (numbers[i] > maxNum) { maxNum = numbers[i].value(); number = numbers[i]; } } } return number; } /** * @method * @param {array} numbers A array * @returns The min number of numbers * @desc To get the min number of numbers */ function min(numbers) { var minNum,number; if (typeof numbers[0] === "number"){ minNum = numbers[0]; number = numbers[0]; } else { minNum = numbers[0].value(); number = numbers[0]; } for (var i in numbers){ if (numbers[i] < minNum){ if (typeof numbers[i] === "number"){ minNum = numbers[i]; } else { minNum = numbers[i].value(); } number = numbers[i]; } } return number; } /** * @method * @param {array} numbers A array * @param {function} cmp A function * @returns The sorted number of numbers (cmp) * @desc To sort the numbers (cmp) */ function sort(numbers,cmp) { var tmp; for (var i = 0 ; i < numbers.length ; i++){ for (var j = 0 ; j < (numbers.length - 1) ; j++){ if (cmp(numbers[j],numbers[j + 1])){ tmp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = tmp; } } } return numbers; } /** * @method * @param {array} numbers A array * @returns The sorted number of numbers (From max to min) * @desc To sort the numbers (From max to min) */ function sort_min(numbers) { var tmp; for (var i = 0 ; i < numbers.length ; i++){ for (var j = 0 ; j < (numbers.length - 1) ; j++){ if (typeof numbers[j] === "number"){ if (numbers[j] > numbers[j + 1]){ tmp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = tmp; } } else { if (numbers[j].value() > numbers[j + 1].value()){ tmp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = tmp; } } } } return numbers; } /** * @method * @param {array} numbers A array * @returns The sorted number of numbers (From max to min) * @desc To sort the numbers (From max to min) */ function sort_max(numbers) { var tmp; for (var i = 0 ; i < numbers.length ; i++){ for (var j = 0 ; j < (numbers.length - 1) ; j++){ if (typeof numbers[j] === "number"){ if (numbers[j] < numbers[j + 1]){ tmp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = tmp; } } else { if (numbers[j].value() < numbers[j + 1].value()){ tmp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = tmp; } } } } return numbers; } module.exports.max = max; module.exports.min = min; module.exports.sort_min = sort_min; module.exports.sort_max = sort_max; module.exports.sort = sort;