javascript 数组和字符串的转化

字符串转化为数组

'abcde' -> ['a', 'b', 'c', 'd', 'e']

简单一点的方法,__String.prototype.split__可以将字符串转化为数组,分隔符为空。如下所见

> 'abcdefg'.split('')
[ 'a', 'b', 'c', 'd', 'e', 'f', 'g' ]

那么其它类数组(Array-like)对象呢,比如处理DOM常见的HTMLCollection。在jQuery中,jQuery.fn.toArray() 实现了这个功能。

> arr = $p.children
HTMLCollection[dl.index, dl.cat, dl.special, dl.user, dl.cooperation, dl.mobile, div.usercenter]
> $(arr).toArray()
[dl.index, dl.cat, dl.special, dl.user, dl.cooperation, dl.mobile, div.usercenter]

源码如下,slice值为 [].slice

toArray: function() {
return slice.call( this );
},

发现 Array.prototype.slice() 可以办到。接下来封装成一个函数

function toArray(obj) {
return [].slice.call(obj);
} console.log(toArray('abcdef'));

另外,可以通过bind使这一步更加简单。

var toArray = Function.prototype.call.bind(Array.prototype.slice);

数组转化为字符串

> [ 'a', 'b', 'c', 'd', 'e', 'f', 'g' ].join('')
'abcdefg'

参考

上一篇:linux 标准io笔记


下一篇:Java基础之扩展GUI——高亮元素、上下文菜单、移动旋转元素、自定义颜色(Sketcher 10)