发表于: 2021-10-17 22:10:29
0 1152
今天完成的事情:复习之前学过的内容,做一些扩展作业(在原型链上写字符串去重的方法)
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函数的使用方法没有理解。
评论