小墨の博客

梦想需要付诸行动,否则只能是梦

Javascript一句代码实现JS字符串去除重复字符

JS字符串去重

需求:

原字符串:abcdabecd

去重后字符串:abcde

代码如下:

var str = "this is an apple.";
var rs = [].filter.call(str,(s,i,o)=>o.indexOf(s)==i).join('');
// 以上为es6的函数写法,如浏览器不支持这种写法可替换为function形式
// [].filter.call(str,function(s,i,o){return o.indexOf(s)==i;}).join('');
console.log(rs);


思路分析:

核心思想为使用数组的filter方法过滤掉除第一次出现的字符以外其它字符,然后join连接字符串,s、i、o 3个参数分别为:当前字符、当前字符索引、原字符串

此方法妙处在于利用js的call方法改变宿主,使用字符串调用数组中的过滤方法(字符串无此方法),减少了复杂的循环步骤;并且此方法没有使用多余的变量减少内存开支;巧妙的利用indexOf取出字符串中第一次出现的字符(非第一次出现的字符被过滤掉)。因而实现此需求。


灵感来自:https://www.cnblogs.com/yzeng/p/8268731.html

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:503
    • 页面总数:20
    • 分类总数:92
    • 标签总数:207
    • 评论总数:58
    • 浏览总数:211726

    | | |
    | |  Z-Blog PHP