发表于: 2021-10-17 22:10:29

0 1153


今天完成的事情:复习之前学过的内容,做一些扩展作业(在原型链上写字符串去重的方法)

        String.prototype.unique = function () {
            lis = this.split("");
            console.log(lis);
            obj = {};
            arr = [];
            for (let i = 0; i < lis.length; i++) {
                if(!obj[lis[i]]){
                    obj[lis[i]] = "abc";
                    arr.push(lis[i]);
                }
               
            }
            return arr.join("");
        }

解析:将字符串分隔为数组,并使用数组去重的方法,返回时将数组拼接回字符串。


作业二:一个字符串[a-z]组成,找出该字符串第一个只出现一次的字母

        function fristStr(paras) {
            arr = paras.split("");
            var obj = arr.reduce(function (prev, next) {
                prev[next] = (prev[next] + 1) || 1;
                return prev;
            }, {});
            for (let prop in obj) {
                if(obj[prop] == 1){
                    return prop;
                    break;
                }
            }
        }

解析:将字符串分隔成数组,使用reduce函数进行计数并返回成对象,遍历此对象找到第一个值为1的属性名并返回。


遇到的问题:reduce函数的使用方法没有理解。

参考:https://www.jb51.net/article/154881.htm


返回列表 返回列表
评论

    分享到