美文网首页
按某个特定的字符排序单词

按某个特定的字符排序单词

作者: ifcode | 来源:发表于2015-05-04 00:37 被阅读64次

    这里主要收集一些我遇到有趣的题目,或是短小使用的tips。这里的东西一般不会展开说了,只对几个要点注释一下,并附上必要的参考。由于大部分东西是写给我自己做备忘的,可能文笔不会太流畅,大家捡重点的看吧。

    题目要求写这样一个函数:接收两个参数,第一个是一个按逗号分隔的字符串,第二个是排序需要的字符位置。期待的结果是将字符串中的单词按这个字符位置排序,比如:

    function sortIt('bid, zag', 2) 
    

    需要排序的字符串是'bid, zag',根据每个单词的第二个字母顺序排序(a在i前),所以排序结果将为 'zag, bid'。

    思路就是首先将字符串按逗号分隔成单词数组,然后就可以利用array的sort方法了。要记得sort方法是可以接收一个比较函数来进行指定的排序的,于是就有:

    function sortIt(list, n) {
      return list.split(', ').sort(function(a, b) {
        var p = n - 1;
        return a.charCodeAt(p) - b.charCodeAt(p);
      }).join(', ');
    }
    

    结合Array.prototype.sort的文档,我们知道sort字母排序需要的是Unicode值,于是找到charCodeAt这个我不常用的方法,它的作用正是返回指定位置字符的Unicode的值。

    相关文章

      网友评论

          本文标题:按某个特定的字符排序单词

          本文链接:https://www.haomeiwen.com/subject/dozbfttx.html