当前位置:   article > 正文

JS 数据统计常用函数

JS 数据统计常用函数
1,时间转换
// 转换为几年几月几天几时几分几秒:函数处理
  // now: 时间戳
  formatDate (now) {
    var year = new Date(now).getFullYear();
    var month = new Date(now).getMonth() + 1;
    var date = new Date(now).getDate();
    var hour = new Date(now).getHours();
    var minute = new Date(now).getMinutes();
    var second = new Date(now).getSeconds();
    if (month < 10) {
      month = '0' + month;
    }
    if (date < 10) {
      date = "0" + date;
    }
    if (hour < 10) {
      hour = "0" + hour;
    }
    if (minute < 10) {
      minute = "0" + minute;
    }
    if (second < 10) {
      second = "0" + second;
    }
    return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
  },
  // 调用
  var aa = formatDate (1624265374 * 1000)
  // 输出格式 2021-06-21 16:49:34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
// 获取星期几
  getWeek (dateString) {
    var dateArray = dateString.split("-");
    var date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
    return "星期" + "日一二三四五六".charAt(date.getDay());
  },
  console.log(getWeek('2021-06-21')) // 星期一
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
// 处理剩余时间 剩余多少天
// time: 时间戳
function countDown (time) {
  var date1 = new Date().getTime();   //开始时间
  var date2 = time * 1000;     //结束时间
  var date3 = date2 - date1;   //时间差的毫秒数
  var days = Math.ceil(date3 / (24 * 3600 * 1000));
  return days;
} 
// 1624438173 ---》 2021-06-23 16:49:33的时间戳
console.log(countDown(1624438173)) // 2 剩余两天
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2, 字符串和数值处理
// 转换单位
changeNumType (value) {
  if (value >= 10000 && value < 10000000) {
     value = (value / 10000).toFixed(2) + "万";
   } else if (value >= 10000000 && value < 100000000) {
     value = (value / 10000000).toFixed(2) + "千万";
   } else if (value >= 100000000) {
     value = (value / 100000000).toFixed(2) + "亿";
   } else if (value < 10000) {
     value = value;
   }
   return value;
 },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
js常用内置对象有:Date,、Array、String、Math...
Array对象中常用方法: 
concat()     表示把几个数组合并成一个数组
join()      设置分隔符连接数组元素为一个字符串
pop()       移除数组最后一个元素
shift()     移除数组中第一个元素 
slice(start,end)  返回数组中的一段
splice()     可以用来删除,可以用来插入,也可以用来替换 
push()       往数组中新添加一个元素,返回最新长度
sort()        对数组进行排序
reverse()    反转数组的顺序 
toLocaleString()   把数组转换为本地字符串
array对象属性: 
length         表示取得当前数组长度 (常用)
constructor      引用数组对象的构造函数
prototype       通过增加属性和方法扩展数组定义
 
String对象 
charAt()          返回指定索引的位置的字符 
indexOf()          从前向后检索字符串,看是否含有指定字符串
lastIndexOf()       从后向前检索字符串,看是否含有指定字符串
concat()          连接两个或多个字符串
match()            使用正则表达式模式对字符串执行查找,并将包含查找结果最为结果返回
replace()         替换一个与正则表达式匹配的子串
search()          检索字符串中与正则表达式匹配的子串。如果没有找到匹配,则返回 -1slice(start,end)     根据下表截取子串 
substring(start,end)   根据下表截取子串 
split()          根据指定分隔符将字符串分割成多个子串,并返回素组
substr(start,length)   根据长度截取字符串 
toUpperCase()       返回一个字符串,该字符串中的所有字母都被转化为大写字母。 
toLowerCase()       返回一个字符串,该字符串中的所有字母都被转化为小写字母。
Math对象
ceil()向上取整。
floor()向下取整。
round()四舍五入。
random()取随机数。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
3, 处理数组对象函数
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="lodash.js"></script>
</head>
<body>
  <div>测试数据转换</div>
  <script>
    // 数组对象 转换格式
    // 实现步骤:
    // 1,需要下载lodash.js 文件
    const empsRows = [
      { RowId: '001', EmpId: '10', Lastname: 'Smith', Firstname: 'Joe', Salary: 40000 },
      { RowId: '002', EmpId: '12', Lastname: 'Jones', Firstname: 'Mary', Salary: 50000 },
      { RowId: '003', EmpId: '11', Lastname: 'Johnson', Firstname: 'Cathy', Salary: 44000 },
      { RowId: '004', EmpId: '22', Lastname: 'Jones', Firstname: 'Bob', Salary: 55000 },
      { RowId: '005', EmpId: '24', Lastname: 'Steve', Firstname: 'Mike', Salary: 62000 }
    ]
    function applyColumn(colDataset, columnName) {
      if (!_.has(colDataset, columnName)) {
        colDataset[columnName] = []
      }
      return colDataset
    }
    function rowOriented2ColOriented(rowDataset) {
      let colDataset = {}

      rowDataset.forEach(function(row, i) {
        const columnNames = _.keys(row)

        columnNames.forEach(function(columnName) {
          colDataset = applyColumn(colDataset, columnName)
          colDataset[columnName][i] = row[columnName]
        })
      })

      return colDataset
    }

    const transformedDataset = rowOriented2ColOriented(empsRows)

    console.log(transformedDataset)
    /* 输出内容
    EmpId: (5) ["10", "12", "11", "22", "24"]
    Firstname: (5) ["Joe", "Mary", "Cathy", "Bob", "Mike"]
    Lastname: (5) ["Smith", "Jones", "Johnson", "Jones", "Steve"]
    RowId: (5) ["001", "002", "003", "004", "005"]
    Salary: (5) [40000, 50000, 44000, 55000, 62000]
     */
  </script>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/607643
推荐阅读
相关标签
  

闽ICP备14008679号