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

2015-05-04  本文已影响64人  ifcode

这里主要收集一些我遇到有趣的题目,或是短小使用的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的值。

上一篇 下一篇

猜你喜欢

热点阅读