js截取时间段

需求:后台需要保存一个时间段的值,根据element ui提供的时间段选择组件保存的是一个数组,所以需要前端先装换查字符串,提交给后台,数据在组件回显的时候又需要将其转换数组,所以下面先总结一下数组转字符串和字符串转数组的方法:

1、js数组转字符串

1、toString()

var a = [1,2,3,4,5,6,7,8,9,0]; //定义数组
var s = a.toString();  //把数组转换为字符串
console.log(s);  //返回字符串“1,2,3,4,5,6,7,8,9,0”
console.log(typeof s);  //返回字符串string,说明是字符串类型

2、join(‘指定字符’)
join() 方法可以把数组转换为字符串,不过它可以指定分隔符。在调用 join() 方法时,可以传递一个参数作为分隔符来连接每个元素。如果省略参数,默认使用逗号作为分隔符,这时与 toString() 方法转换操作效果相同。

var a = [1,2,3,4,5]; //定义数组
var s = a.join('-');  //把数组根据 ','符号转换为字符串
console.log(s);  //返回字符串“1-2-3-4-5”

2、字符串转数组

1、split()
split() 方法是 String 对象方法,与 join() 方法操作正好相反。该方法可以指定两个参数,第 1 个参数为分隔符,指定从哪儿进行分隔的标记;第 2 个参数指定要返回数组的长度。

var s = "1-2-3-4-5";
var a = s.split("-");
console.log(a); //[1,2,3,4,5]
console.log(a.constructor == Array); //true

3、字符串截取方法

substring()、substr()、slice()都有截取字符串的作用
1、substring()

str.substring(indexStart, [indexEnd])
//1、substring()从提取的字符indexStart可达但不包括 indexEnd
//2、如果indexStart 等于indexEnd,substring()返回一个空字符串。
//3、如果indexEnd省略,则将substring()字符提取到字符串的末尾。
//4、如果任一参数小于0或是NaN,它被视为为0。
//5、如果任何一个参数都大于stringName.length,则被视为是stringName.length。
//6、如果indexStart大于indexEnd,那么效果substring()就好像这两个论点被交换了一样; 例如,str.substring(1, 0) == str.substring(0, 1)

2、substr()

str.substr(start, [length])

3、slice()

str.slice(beginIndex[, endIndex])

4、时间段只显示时间

在这里插入图片描述
在这里插入图片描述
将后台返回的element ui 中时间段选择组件的数据,转换成如上图显示的结果的过滤器方法如下:

    getTime() {
      const timeArr = arguments[0].split(',')
      let index = -1
      let str = ''
      for (let i = 0; i < timeArr.length; i++) {
        index = timeArr[i].indexOf(':')
        if (index !== -1) {
          str += timeArr[i].substr(index - 2, 8) + '-'
        }
      }
      return str.slice(0, str.length - 1) //去掉字符串最后一位
    }

你可能感兴趣的:(javascript,element,UI,字符串数组相互转换)