数组工具类封装

'use strict'/*** 数组求和* @param array* @returns {number|*}* @constructor*/
export function SUM (array = []) {const len = array.lengthif (len === 0) {return 0} else if (len === 1) {return array[0]} else {return array[0] + SUM(array.slice(1))}
}/*** @param array* @param point* @returns {*}* @constructor*/
export function FILTER (array = [], point = '0') {for (let i = 0; i < array.length; i++) {const item = array[i]for (let j = 0; j < item.val.length; j++) {if (JSON.stringify(item.val[j]) === JSON.stringify(point)) {return item.key}}}
}/*** 返回数组中的最大值* @param array* @returns {any}* @constructor*/
export function MAX (array = []) {let max = JSON.parse(array[0])for (let i = 0; i < array.length - 1; i++) {max = max < JSON.parse(array[i + 1]) ? JSON.parse(array[i + 1]) : max}return max
}/*** 返回数组中的最小值* @param array* @returns {any}* @constructor*/
export function MIN (array = []) {let min = JSON.parse(array[0])for (let i = 0; i < array.length - 1; i++) {min = min > JSON.parse(array[i + 1]) ? JSON.parse(array[i + 1]) : min}return min
}/*** 数组中最大值和最小值(用于柱状图,折线图刻度值)* @param array* @returns {{min: number, max: number}}* @constructor*/
export function MAX_MIN (array = []) {let max = array[0]let min = array[0]for (let i = 0; i < array.length - 1; i++) {max = max < array[i + 1] ? array[i + 1] : maxmin = min > array[i + 1] ? array[i + 1] : min}max = Math.ceil(max)min = Math.floor(min)// 坐标轴纵向座标刻度为6// const itemScale = max / 6// 最大值// max = (typeof max === Number) ? max : parseInt(max)// min = (typeof min === Number) ? min : parseInt(min)// max = (max + itemScale).toFixed(0)// min = (min-itemScale<0)?0:(min-itemScale).toFixed(0)return { max, min }
}/*** 数组排序* @param array* @param attribute* @param order* @returns {*[]}* @constructor*/
export function SORT (array = [], attribute = '', order = '') {function compare (attribute) {if (order === undefined) {order = 1} else {order = (order) ? 1 : -1}return function (a, b) {a = a[attribute]b = b[attribute]if (a < b) {return order * -1}if (a > b) {return order * 1}return 0}}return array.sort(compare(attribute))
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部