JS数组,字符串,json互相转换

JS数组转字符串

使用数组自带的join方法可以把数组转化为字符串:

let arr = [1,2,'uu'];
let str = arr.join(',');
console.log(str); // 1,2,uu

如果素组元素包含对象,则调用对象的toString()方法将对象转化为字符串。

class C {
// 自定义类C,以及自定义toString()方法
toString() { return 'class C'; }
}
let cc = new C(); // C的实例
let arr = [{a: 1}, cc, [3,4,[5,5]], 5];
let str = arr.join('---');
console.log(str); // [object Object]---class C---3,4,5,5---5

从上面的例子中还可以发现,数组中嵌套数组时,所有元素依次打印出来,那是因为数组ArraytoString()方法内部实现就是join.

[1,1,[2,2,[3,3,3]]] + ""; // 1,1,2,2,3,3,3

字符串转数组

使用字符串自带的split方法可以把字符串分割为数组。

let str = '1,2,uu';
let arr = str.split(',');
console.log(arr); // ["1", "2", "uu"]
str

数组转json字符串,json字符串转数组

使用JSON.parse()方法可以解析json字符串转化为相应的json对象(包括数组),使用JSON.stringify()方法可以把数组或对象转化为json字符串。

let arr = [1,2,'uu'];

let jsonStr = JSON.stringify(arr);
console.log(jsonStr); // 字符串:'[1,2,"uu"]' let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // 数组: [1,2,'uu']

JS清空数组的方法

赋值空数组

let arr = [1,2,3];
console.log(arr); // [1,2,3]
arr = [];
console.log(arr); // []

修改length属性

JS数组的length熟悉可以直接修改。

let arr = [1,2,3];
console.log(arr); // [1,2,3]
arr.length = 0;
console.log(arr); // []

使用splice方法

JS中数组自带的splice()方法用于向数组中添加或者删除元素,功能非常强大。

参数说明如下,返回值为包含被删除项目的新数组,如果有的话。

arrayObject.splice(index,howmany,item1,.....,itemX)

参数名 描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
let arr = [1,2,3];
console.log(arr); // [1,2,3]
let arr2 = arr.splice(0, arr.length); // 删除所有元素
console.log(arr); // []
console.log(arr2); // [1,2,3]

JS时间和时间戳的转换

JS时间转时间戳

使用Date对象的方法:

let dateObj = new Date();  // Date对象,当前时间

// parse()方法,毫秒级别的数值被转化为000
Date.parse(dateObj); // 1549976497000 // Date对象的valueOf()方法
dateObj.valueOf(); // 1549976497495 // Date对象的getTime()方法
dateObj.getTime(); // 1549976497495 // 转化为Number类型,包括显式和隐式类型转换
new Number(dateObj); // Number {1549976497495}
dateObj - 0; // 1549976497495

JS时间戳转时间

直接将时间戳作为参数新建一个Date对象即可,支持毫秒和秒。

let timestamp = 1549976497495;
let dateObj = new Date(timestamp); // Date对象
dateObj.getTime(); // 1549976497495 timestamp = 1549976497;
dateObj = new Date(timestamp); // Date对象
dateObj.getTime(); // 1549976497

JS字符串和时间戳互转

Date()对象的构造函数不仅可以接受表示时间戳数字类型的参数,还可以接受时间字符串,但是对格式有要求。

let timeStr = '2019-02-02 12:12:12';
let dateObj = new Date(timeStr);
dateObj.getTime(); // 1549080732000 dateObj.toDateString(); // Sat Feb 02 2019
dateObj.toString(); // Sat Feb 02 2019 12:12:12 GMT+0800 (中国标准时间)
dateObj.toLocaleString(); // 2019/2/2 下午12:12:12 myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间----如果涉及到时分秒,直接使用即可。

JavaScript类型相关常用操作的更多相关文章

  1. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  2. javascript中字符串常用操作总结、JS字符串操作大全

    字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...

  3. Python元组类型、字典类型及常用操作

    一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...

  4. Python列表类型及常用操作

    Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...

  5. JavaScript 字符串实用常用操作

    字符串截取1. substring()xString.substring(start,end)substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始 ...

  6. MongoDB中数组类型相关的操作

    概述 在MongoDB的模式中,我们经常将一些数据存储到数组类型中,即我们常见的嵌套模式设计的一种实现方式.数组的这种设计实现方式在关系数据库中是没有或者说不常见的.所以,通过本文我们来梳理一下Mon ...

  7. javascript中字符串常用操作总结

    String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不 ...

  8. JavaScript(js)对象常用操作,JS操作JSON总结

    数据类型判断可以通过一元操作符typeof,此操作符可以判断大部分JS数据类型. 也可以通过instanceof来判断.如: var a = []; alert(typeof a); // objec ...

  9. 自定义枚举类型的常用操作-附源码(xjl456852原创)

    自定义枚举类型中,假如我们有name和desc这样的属性,并在这个基础上定义了多个对象. 那么就可能用到通过name获取desc,或者通过desc获取name.通过name或者desc获取对应的枚举对 ...

随机推荐

  1. 【最小生成树】Bzoj1232 [Usaco2008Nov]安慰奶牛cheer

    Description Farmer John变得非常懒, 他不想再继续维护供奶牛之间供通行的道路. 道路被用来连接N (5 <= N <= 10,000)个牧场, 牧场被连续地编号为1. ...

  2. Dashboard二次开发简明教程

    Horizon简介 Horizon是OpenStack的一个子项目,用于提供一个Web前端控制台(称为Dashboard),以此来展示OpenStack的功能.通常情况下,我们都是从Horizon.D ...

  3. linux yum命令 使用

    yum -y install 包名(支持*) :自动选择y,全自动 yum install 包名(支持*) :手动选择y or n yum remove 包名(不支持*) rpm -ivh 包名(支持 ...

  4. Android缓存机制——LruCache

    概述 LruCache的核心原理就是对LinkedHashMap的有效利用,它的内部存在一个LinkedHashMap成员变量,值得注意的4个方法:构造方法.get.put.trimToSize LR ...

  5. 关于MQ,你必须知道的

    我走过最长的路是你的套路 女:二号男嘉宾,假如我们牵手成功后,你会买名牌包包给我吗? 男:那你会听话吗? 女:会 听话. 男:听话 咱不买! OK那么消息队列MQ有什么套路呢?(这个话题转换生硬度连我 ...

  6. 『备注』GDI+ 绘制文本有锯齿,透明背景文本绘制

    背景: GDI+ 绘制文本 时,如果 背景是透明的 —— 则会出现 锯齿. //其实,我不用这三个 属性 好多年了 //而且,这三个属性 在关键时刻还有可能 帮倒忙 //关键是:这三个属性,鸟用都没有 ...

  7. 企业级Harbor介绍及安装

    企业级Harbor介绍及安装 一.Harbor介绍 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务.它以D ...

  8. Python爬虫入门教程 37-100 云沃客项目外包网数据爬虫 scrapy

    爬前叨叨 2019年开始了,今年计划写一整年的博客呢~,第一篇博客写一下 一个外包网站的爬虫,万一你从这个外包网站弄点外快呢,呵呵哒 数据分析 官方网址为 https://www.clouderwor ...

  9. 给WEB初学者的一些有效率的建议

    因为IT互联网发展的非常迅速,而web前端这块很火,目前工资水平给的很高,在市场上也是非常的稀缺人才,现在各个行业转行做web前端的很多,今天给大家一些建议,希望新手少走点弯路吧! 建议一:有一个比较 ...

  10. html 中 xmp标记

    HTML页面中显示HTML标签代码,可以使用<xmp>html标签内容</xmp>,这样,在网页中就会显示html标签 for(var i=0;i<columns.len ...