数组工具类封装

简介: 数组工具类封装

'use strict'

/**

  • 数组求和
  • @param array
  • @returns {number|*}
  • @constructor

*/
export function SUM (array = []) {
const len = array.length
if (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] : max
min = 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))
}

相关文章
|
4月前
|
前端开发 算法 JavaScript
2695. 包装数组
2695. 包装数组
27 0
|
1月前
|
Android开发
SharePreference封装成工具类
SharePreference封装成工具类
75 1
|
3月前
|
Java
Java动态获取某个接口下所有的实现类对象集合
Java动态获取某个接口下所有的实现类对象集合
283 1
|
10月前
|
C# 开发者
C#扩展方法和工具类的区别
扩展方法和工具类的主要区别在于它们的作用。扩展方法旨在扩展现有的类,而工具类旨在提供一组通用且可靠的方法来执行某些任务。当需要扩展现有的类时,使用扩展方法;当需要实用函数来执行通用任务时,使用工具类。
63 0
|
11月前
|
Java 编译器
类 对象 封装
类 对象 封装
67 0
static 和数组工具类和数学工具类
static 和数组工具类和数学工具类
|
Java
Java数组工具类
数组工具类
54 0
|
Java
Java集合Collection接口中的常用方法演示
由于接口不可以创建对象,所以,以下方法的演示将以Collection接口的子接口List的实现类ArrayList()进行演示。
99 0
Java集合Collection接口中的常用方法演示
数组常用方法总结(部分方法利用了工具类)
数组常用方法总结(部分方法利用了工具类)
102 0
|
存储 Java
Java基础(七)| 类、对象、封装和构造详解
⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。
118 0
Java基础(七)| 类、对象、封装和构造详解