Array和String相互转换

Array 转 String、String 转 Array、字符串Array转换成数字Array

Array 转 String

String()

1
2
3
4
String([1,2,3])
// "1,2,3"
String(['1', '2', '3'])
// "1,2,3"

.toString()

1
2
[1,2,3].toString()
// "1,2,3"

.join()

1
2
3
4
[1,2,3].join(",")
// "1,2,3"
[1,2,3].join("")
// "123"

String 转 Array

.split()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 一整个字符串
"123".split("")
// ["1", "2", "3"]

// 字符串中内容逗号分隔
"1,2,3".split(",")
// ["1", "2", "3"]

"1,2,3".split("")
// ["1", ",", "2", ",", "3"]

// 字符串中内容逗号分隔,逗号有空格
// 直接用split(","),打印除了数字前会有空格,所以添加replace()去掉全部空格
"1, 2, 3".replace(/\s+/g,"").split(",")
// ["1", "2", "3"]

Array.from()

1
2
3
4
5
6
7
8
9
Array.from('foo')
// ["f", "o", "o"]

// 将arguments 的值提出来。即,将类数组转为真数组。
function f() {
return Array.from(arguments);
}
f(1, 2, 3)
// [1, 2, 3]

Array.prototype.slice.call()

1
2
3
4
5
6
7
8
Array.prototype.slice.call('hello', 0, 2)
//  ["h", "e"]

function f() {
return Array.prototype.slice.call(arguments);
}
f(1, 2, 3)
// [1, 2, 3]

.match()

1
2
'hello'.match(/l/g)
// ["l", "l"]

扩展运算符

扩展运算符可以将字符串转为真正的数组。

1
2
[...'hello']
// [ "h", "e", "l", "l", "o" ]

字符串 Array 转换成数字 Array

如: ['1','2','3']=>[1,2,3]

JSON.parse() + String()

1
2
JSON.parse('['+ String(['1','2','3']) + ']')
// [1, 2, 3]

.map()

1
2
['1','2','3'].map(Number)
// [1, 2, 3]

Object 转 Array

1
2
3
4
var obj = {one: 'hello', two: 'world'}
var arr = Object.keys(obj)
arr = arr.map(function(i){return obj[i]})
// ["hello", "world"]

伪数组 转 数组

Array.prototype.slice.call(arguments)

Array.from(arguments)

[…arguments]

1
2
3
4
5
6
function foo() { 
console.log(Array.prototype.slice.call(arguments))
console.log(Array.from(arguments))
console.log([...arguments])
}
foo(1,2,3,4)