JS中数组、对象、字符串之间的转换
·
JS中数组、对象、字符串之间的转换
数组——字符串
1、数组转字符串
- 方法一:.toString()/String()(.toString()可以将除了null和defined的数据类型都转化为字符串,可以转化进制字符串;String()可以将null和undefined转化为字符串,但是没法转化进制字符串)
将数组转成一个字符串,然后以逗号连接输出
var a=[1,2,3,4,5]
var b=a.toString()
var c=String(a)
console.log(b)//1,2,3,4,5
console.log(typeof(b))//string
console.log(c)//1,2,3,4,5
console.log(typeof(c))//string
字符隐式,+ 会自动调用toString()方法将数组转为字符串
var a=[1,2,3,4,5]
var b=[6,7,8,9,0]
var c=a+b
console.log(c)//1,2,3,4,56,7,8,9,0(连接处没有,)
console.log(typeof(c))//string
多维数组,会把每一层的数组都转化为字符串
var a= [[1,[2,3],[4,5]],[6,[7,[8,9],0]]];
var b=a.toString()
console.log(b)//1,2,3,4,5,6,7,8,9,0
console.log(typeof(b))//string
- 方法二:.toLocaleString()
用作数组转字符串时和.toString()用法一样,主要区别在于 .toLocaleString() 方法能够使用用户所在地区特定的分隔符把生成的字符串连接起来,形成一个字符串。主要用于可根据本地时间把Date对象转换为字符串,并返回结果【以本地时间区表示,并根据本地规则格式化。】
var a= [1,2,3,4,5];
var b=a.toLocaleString()
console.log(b)//1,2,3,4,5
console.log(typeof(b))//string
- 方法三:.join()(不会改变自身)
.join()将数组转成字符串,可以传递一个参数指定分隔符,当省略参数时,默认使用“,”,此时和toString()用法相同。
var a= [1,2,3,4,5];
var b=a.join("-")
console.log(b)//1-2-3-4-5
console.log(typeof(b))//string
2、字符串转数组
- .split()
将字符串以指定的分隔符分割成数组
var a="12_256_2_0"
console.log(b)//[ '12', '256', '2', '0' ]
▶数组中字符串与数字互转
由字符串转成的数组每一项都是字符串,有时需要将其转成数字
字符串转数字
var a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
a.map(Number); //结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
数字转字符串
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); //结果: ['1', '2', '3', '4', '5', '6', '7', '8', '9']
对象——字符串
1、对象转字符串
- JSON.stringify()
var obj={
name:'张一',
age:25,
sex:'男'
}
var str=JSON.stringify(obj)
console.log(str)//{"name":"张一","age":25,"sex":"男"}
console.log(typeof(str))//string
2、json字符串转对象
JSON.parse
var str='{"name":"张一","age":25,"sex":"男"}'
var obj=JSON.parse(str)
console.log(obj)//{ name: '张一', age: 25, sex: '男' }
console.log(typeof(obj))//object
数组——对象
js中数组与对象的转换没有内置方法,只能写自定义方法
1、数组转对象
let arr = [ {
"key": "name",
"value": "张一"
},
{
"key": "age",
"value": 25
},
{
"key": "sex",
"value": "男"
}]
let obj = {}
arr.forEach(item=> {
obj[item.key] = item.value
})
console.log('obj', JSON.stringify(obj, null, 2));
//输出结果
obj {
"name": "张一",
"age": 25,
"sex": "男"
}
2、对象转数组
let arr = []
var obj={
name:'张一',
age:25,
sex:'男'
}
for(let v in obj) {
arr.push({
key: v,
value: obj[v]
})
}
console.log('arr', JSON.stringify(arr, null, 2));
//输出结果
arr [
{
"key": "name",
"value": "张一"
},
{
"key": "age",
"value": 25
},
{
"key": "sex",
"value": "男"
}
]
更多推荐
已为社区贡献1条内容
所有评论(0)