1、将CST时间格式转换成yyyy-MM-dd

  1. <script>
  2. dateFormat = function(date, format) {
  3. date = newDate(date);
  4. varo = {
  5. 'M+':date.getMonth() + 1, //month
  6. 'd+':date.getDate(), //day
  7. 'H+':date.getHours(), //hour
  8. 'm+':date.getMinutes(), //minute
  9. 's+':date.getSeconds(), //second
  10. 'q+':Math.floor((date.getMonth() + 3) / 3), //quarter
  11. 'S':date.getMilliseconds() //millisecond
  12. };
  13. if (/(y+)/.test(format))
  14. format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  15. for (varkino)
  16. if (newRegExp('(' + k + ')').test(format))
  17. format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
  18. return format;
  19. }
  20. console.log(dateFormat('Mon Apr 27 09:08:20 CST 2015', 'yyyy-MM-dd HH:mm:ss'));
  21. </script>

2、模板字符串的使用

  1. let uname = "黑马程序员";
  2. let age = 18;
  3. document.write(`名字是${uname},今年${age}岁了!`); // ` 英文状态下点击1左边那个键;

3、js获取iframe页面元素

参考链接(https://www.cnblogs.com/Marydon20170307/p/9488998.html

  1. <iframe id="myframe"> </iframe>

(1)、通过父页面操作子页面,获取iframe页面中的元素

操作 JavaScript JQuery
方式一: document.getElementById(‘myframe’).contentWindow.document.getElementById(‘元素的选择器’) $(‘#myframe’).contents.find(‘元素的选择器’)
方式二: document.frames[‘myframe’].document.getElementById(‘元素的选择器’) $(‘元素的选择器’ , document.frames(‘myframes’).docment)

(2)、找iframe的方法

点击iframe,然后审查元素->控制台输入$0即可选中当前的iframe;

4、对象转成数组的方法

(参考链接:https://jingyan.baidu.com/article/ed2a5d1f980c7809f7be177c.html
image.png
另一种方法通过循环实现:https://www.cnblogs.com/Shysun/p/10465754.html
注意:Array.from()是es6支持的方法;

5、JSON的几种常用方法使用方法

参考链接(https://www.runoob.com/js/javascript-json-parse.html

(1)、JSON.parse() :将字符串转换成对象的形式;

例如:返回数据格式如下:result = “{“queryParam” : “[{ “name” : “xiaoh”}]”}”
JSON.parse() 解析后数据格式是 result = queryParam : “[{“name” : “xiaoh”}]”
alert(result.queryParam)显示的是[Object Object];

(2)、JSON.stringify() :将对象转换成字符串的形式;

例如:返回数据格式如下:result = queryParam : “[{“name” : “xiaoh”}]”
var str = JSON.stringify( result.queryParam) ;
alert( str ) = [{“name” : “xiaoh”}];

6、数组转换成字符串的方法(element-ui表格列格式化用法)

问题现象:编辑页面使用element-ui中的多选下拉框,存入后台数据库的值为

  1. zjly: "[\"计算机辅助工程(CAE)\",\"电子设计自动化(EDA)\"]"

在表格列显示格式为:计算机辅助工程(CAE),电子设计自动化(EDA)
实现方法:通过格式化函数实现。

  1. 首先在需要格式化的列上添加属性 :formatter=”formatter”
  2. 给formatter 添加格式化函数,如下:
    1. formatter(row: any) {
    2. //因为返回值时字符串,所以先使用JSON.parse转换为数组,在使用数组的join方法进行分割;
    3. return JSON.parse(row.zjly).join(',')
    4. }

    7、获取当前日期

    1. //默认获取当日日期
    2. let date = new Date()
    3. let y = date.getFullYear()
    4. let m = date.getMonth() + 1
    5. let month = m < 10 ? '0' + m : m
    6. let d = date.getDate()
    7. let day = d < 10 ? '0' + d : d
    8. const time = y + '-' + month + '-' + day
    9. //将当前日期time赋值给页面上需要默认显示当前日期的变量
    10. this.formModel.khkssj = time

    8、字符串转换为数组的方法

    参考链接:(https://blog.csdn.net/lgno2/article/details/118837249
    split()方法:例如通过使用空字符串作为split方法的分隔符,我们可以将字符串转换为字符数组。
    代码如下:
    1. const text = "abc";
    2. const chars = text.split('');
    3. console.log(chars);
    4. //['a', 'b', 'c']

    9、js遍历对象的几种方法

    参考链接:(https://www.cnblogs.com/wangdashi/p/9606182.html) ```javascript // 第一种方法: for…in const obj = { name:’zhangsan’, age:18 } for(let key in obj){ console.log(key + ‘—-‘ + obj[key]) }

// 输出结果: name—-zhangsan age—-18

// 第二种方法 Object.keys(obj)——Object.values(obj) // 参数 obj: 要返回其枚举自身属性的对象 // 返回值:一个表示给定对象的所有可枚举属性的字符串数组。 const obj = {     id:1,     name:’zhangsan’,     age:18 } console.log(Object.keys(obj)) // 输出:obj对象的key组成的数组 [‘id’,’name’,’age’] console.log(Object.values(obj)) // 输出:obj对象的value组成的数组 [‘1’,’zhangsan’,’18’]

// 第三种方法 Object.getOwnPropertyNames(obj) // 返回一个数组,包含对象自身的所有属性(包含不可枚举属性),遍历可以获取key和value const obj = { id:1, name:’zhangsan’, age:18 } Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key+ ‘—-‘+obj[key]) }) // 输出结果: id—-1 name—-zhangsan age—-18

  1. <a name="o1SQY"></a>
  2. ## 10、合并两个数组并去除重复项只留下一个的方法
  3. ```javascript
  4. private mergeArray(arr1: any, arr2: any) {
  5. for (var i = 0; i < arr1.length; i++) {
  6. for (var j = 0; j < arr2.length; j++) {
  7. if (arr1[i].id === arr2[j].id) {
  8. //利用splice函数删除元素,从第i个位置,截取长度为1的元素
  9. arr1.splice(i, 1)
  10. }
  11. }
  12. }
  13. for (var m = 0; m < arr2.length; m++) {
  14. arr1.push(arr2[m])
  15. }
  16. return arr1
  17. }

11、vue实现倒计时

  1. private day: any = ''
  2. private hr: any = ''
  3. private min: any = ''
  4. private sec: any = ''
  5. // 倒计时
  6. private countdown() {
  7. const end = Date.parse(new Date('2021-12-13 17:00:00') as any)
  8. const now = Date.parse(new Date() as any)
  9. const msec = end - now
  10. if (msec < 0) return
  11. let day = parseInt((msec / 1000 / 60 / 60 / 24) as any)
  12. let hr = parseInt(((msec / 1000 / 60 / 60) % 24) as any)
  13. let min = parseInt(((msec / 1000 / 60) % 60) as any)
  14. let sec = parseInt(((msec / 1000) % 60) as any)
  15. this.day = day
  16. this.hr = hr > 9 ? hr : '0' + hr
  17. this.min = min > 9 ? min : '0' + min
  18. this.sec = sec > 9 ? sec : '0' + sec
  19. const that = this
  20. if (hr >= 0 && min >= 0 && sec >= 0) {
  21. // 倒计时五分钟提示
  22. if (hr == 0 && min == 5 && sec == 0) {
  23. this.$alert('距离考试结束还剩五分钟,请抓紧时间答题', '提示', {
  24. confirmButtonText: '确定',
  25. })
  26. }
  27. //倒计时结束提交试卷
  28. if (hr == 0 && min == 0 && sec == 3) {
  29. this.$message('3s后将强制交卷!')
  30. }
  31. if (hr == 0 && min == 0 && sec == 0) {
  32. this.dialogVisible = false
  33. }
  34. setTimeout(function () {
  35. that.countdown()
  36. }, 1000)
  37. }
  38. }
  39. mounted(){
  40. this.countdown()
  41. }

12、计算两个日期之间的天数

  1. // 计算time与当前日期相差的天数,本质就是分别将两个日期转换成时间戳,
  2. // 将两者相差的时间戳再转回天数
  3. // 本示例中是实现,相差天数为大于两周就返回false,否则返回true
  4. function (time) {
  5. var day = (new Date().getTime() - Date.parse(time)) / (24 * 60 * 60 * 1000);
  6. if (day > 7) {
  7. return false
  8. } else {
  9. return true
  10. }
  11. }

13、js实现表格列显示效果为:

从 ‘测试,测试1’ 变为 ‘(1)测试,(2)测试1’

效果展示:
image.png
代码如下:

  1. <el-table-column
  2. prop="sbqtdw"
  3. label="申报牵头单位"
  4. width="400px"
  5. :formatter="handleFmt"
  6. >
  7. </el-table-column>
  8. private handleFmt(rowData: any) {
  9. let str = rowData.sbqtdw ? rowData.sbqtdw.split(',') : ''
  10. let newStr = ''
  11. for (var i = 0; i < str.length; i++) {
  12. newStr += '(' + Number(i + 1) + ') ' + str[i] + ','
  13. }
  14. return newStr.substr(0, newStr.length - 1)
  15. }

14、js实现表格行上下排序:

实现效果:
image.png
页面代码:

  1. <!-- index——下标, type——移动的类型, arr——表格的list集合 -->
  2. <el-button
  3. :disabled="index === 0"
  4. icon="el-icon-arrow-up"
  5. @click="sort(field.options.options, index, 'up')"
  6. ></el-button>
  7. <el-button
  8. :disabled="index === field.options.options.length - 1"
  9. icon="el-icon-arrow-down"
  10. @click="sort(field.options.options, index, 'down')"
  11. ></el-button>

ts代码:

  1. // index——下标, type——移动的类型, arr——表格的list集合
  2. sort(arr, index, type) {
  3. if ('up' == type) {
  4. if (index !== 0) {
  5. let temp = arr[index - 1]
  6. this.$set(arr, index - 1, arr[index])
  7. this.$set(arr, index, temp)
  8. }
  9. } else {
  10. if (index !== arr.length - 1) {
  11. let i = arr[index + 1]
  12. this.$set(arr, index + 1, arr[index])
  13. this.$set(arr, index, i)
  14. }
  15. }
  16. },