Javascript 找出字符串是通用字符串吗?
这是在一次采访中向我提出的问题,通过构造函数来找出通用字符串,他让我用ES6来解决这个问题。如果有更好的解决方案,请帮助我以更好、更短的方式解决它。这是一个函数,如果字符串是通用字符串,它将返回true,否则它将返回falseJavascript 找出字符串是通用字符串吗?,javascript,ecmascript-6,Javascript,Ecmascript 6,这是在一次采访中向我提出的问题,通过构造函数来找出通用字符串,他让我用ES6来解决这个问题。如果有更好的解决方案,请帮助我以更好、更短的方式解决它。这是一个函数,如果字符串是通用字符串,它将返回true,否则它将返回false const universalString=(字符串)=>{ string=string.replace(//g',).toLowerCase(); 设cherecterLenData=[]; //字母表数组 设alphabetData=[“a”、“b”、“c”、“d”
const universalString=(字符串)=>{
string=string.replace(//g',).toLowerCase();
设cherecterLenData=[];
//字母表数组
设alphabetData=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
//用字母数组过滤
alphabetData.filter((charecter,charecterIndex)=>{
if(string.indexOf(charecter)!=-1){
`检查给定字符串中是否存在字符`
//字符串中出现字符的次数
让stringCherecterLen=string.split(charecter).length-1;
如果(stringCherecterLen!=0){
cherecterLenData.push(stringCherecterLen);
}
}
});
if(cherecterLenData.every((val,i,arr)=>val==arr[0])){
返回true;
}
返回false;
}
log(universalString(“你好,Rajat Srivastava你好”);
日志(universalString(“aabbcchh llkkuudd”);
log(universalString(“ababcbdbababcbab”);//错误的
console.log(universalString(“aaccbbddffee”);//true
听起来像是“通用字符串”,其中每个字母字符的出现次数与字符串中其他字母字符的出现次数相同
解决此问题的一种方法是制作一个频率计数器,然后检查所有值是否相同:
const frequencyCount=a=>a.reduce((a,e)=>{
a[e]=++a[e]| | 1;
返回a;
}, {});
常量universalString=s=>{
常数alpha=[…s.replace(/[^a-z]/gi,”);
常数计数=对象值(频率计数(alpha));
return!counts.length | counts.every(e=>e==counts[0]);
};
[
“aabbcchh llkkuudd”,
“abbabcdbbabbabcbab”,
“aaccbbddffee”
].forEach(e=>console.log(e,“=>”,universalString(e))代码>什么是通用字符串?是不是每个角色的出现次数都与其他角色相同?感谢您的澄清。重新格式化并制作了一段操作代码。它运行正常吗?是的,它运行正常。您可以在jsbin.com中进行测试,只需将此代码复制并粘贴到jabin上即可。com@RajatSrivastava将来,如果您的代码运行正常,但您需要改进建议,请使用codereview.stackexchange.com,但一定要在发布和发布之前检查它们。感谢@ggorlen提供的帮助和知识。