1. /* 对象数组转数组 1:obj->Array 2:数据格式
    2. const s ={
    3. a:{label:'1',value:'2'},
    4. b:{label:'1',value:'2'},
    5. ...
    6. }
    7. */
    8. function objToAarr (data){
    9. const newArr =[]
    10. for(const item in data){
    11. newArr.push(data[item])
    12. }
    13. return newArr
    14. }
    15. // 普通数组去重
    16. function uniqueArr(arr) {
    17. return Array.from(new Set(arr))
    18. }
    19. // 数组排序
    20. function sortList(list, key, group) {
    21. const arr = list
    22. arr.sort((a, b) => {
    23. return parseInt(b[key], 10) - parseInt(a[key], 10)
    24. })
    25. return arr
    26. }
    27. // 根据 key 对象数组分组-去重
    28. function uniqueObjArr(list, key) {
    29. const newlist = []
    30. const group = []
    31. list.forEach(element => {
    32. const find = group.indexOf(element[key].replace(/^\s+|\s+$/g, ''))
    33. if (find < 0) {
    34. newlist.push(element)
    35. group.push(element[key].replace(/^\s+|\s+$/g, ''))
    36. }
    37. })
    38. return newlist
    39. }
    40. /** 拷贝*/
    41. function deepClone(source) {
    42. if (!source && typeof source !== 'object') {
    43. throw new Error('error arguments', 'shallowClone')
    44. }
    45. const targetObj = source.constructor === Array ? [] : {}
    46. Object.keys(source).forEach(keys => {
    47. if (source[keys] && typeof source[keys] === 'object') {
    48. targetObj[keys] = deepClone(source[keys])
    49. } else {
    50. targetObj[keys] = source[keys]
    51. }
    52. })
    53. return targetObj
    54. }
    55. // 获取当前时间S
    56. function getTime(type) {
    57. if (type === 'start') {
    58. return new Date().getTime() - 3600 * 1000 * 24 * 90
    59. } else {
    60. return new Date(new Date().toDateString())
    61. }
    62. }
    63. // formatTime当前时间
    64. function formatTime(time, option) {
    65. time = +time * 1000
    66. const d = new Date(time)
    67. const now = Date.now()
    68. const diff = (now - d) / 1000
    69. if (diff < 30) {
    70. return '刚刚'
    71. } else if (diff < 3600) {
    72. // less 1 hour
    73. return Math.ceil(diff / 60) + '分钟前'
    74. } else if (diff < 3600 * 24) {
    75. return Math.ceil(diff / 3600) + '小时前'
    76. } else if (diff < 3600 * 24 * 2) {
    77. return '1天前'
    78. }
    79. if (option) {
    80. return parseTime(time, option)
    81. } else {
    82. return (
    83. d.getMonth() +
    84. 1 +
    85. '月' +
    86. d.getDate() +
    87. '日' +
    88. d.getHours() +
    89. '时' +
    90. d.getMinutes() +
    91. '分'
    92. )
    93. }
    94. }