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


    需求:

    原字符串:abcdabecd

    去重后字符串:abcde

    JS字符串去重,一个简单需求,网上找案例发现都是一大堆代码,对于强迫症的我 实再无法忍受,于是自己手动写出一段代码,完美解决该问题。

    代码如下:

    [].filter.call(str,(s,i,o)=>o.indexOf(s)==i).join('');

    里面的str直接替换成字符串或字符串变量即可。如:

    var rs  =  [].filter.call("abcdabecd",(s,i,o)=>o.indexOf(s)==i).join('');

    得到的rs即为 abcde

    *以上为es6的函数写法,如浏览器不支持这种写法可替换为function形式:

    [].filter.call(str,function(s,i,o){return o.indexOf(s)==i;}).join('');

    思路分析:

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

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

  • 相关阅读:
    Linux系统的vi命令
    log4j.properties配置详解与实例
    Jsp获取Java的重定向赋值(String)
    Jsp获取Java的对象(JavaBean)
    JS中怎么调用<%%>的值
    Java获取请求客户端的真实IP地址
    servlet+jsp+java实现Web应用
    Linux系统安装telnet以及xinetd服务
    The R Project for Statistical Computing
    【Python环境】matplotlib
  • 原文地址:https://www.cnblogs.com/yzeng/p/8268731.html
Copyright © 2020-2023  润新知