• 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'
    

    参考

  • 相关阅读:
    LeetCode
    lintcode--剑指offer
    lintcode--剑指offer---41--50道
    LeetCode中的bug!!!!!!
    常用知识点
    lintcode--剑指offer---31--40道
    LeetCode--链表
    Java设计实践课练习题
    lintcode--剑指offer---21--30道
    Java设计实践课的LeetCode题目
  • 原文地址:https://www.cnblogs.com/xianwang/p/4967228.html
Copyright © 2020-2023  润新知