Javascript 查找字符串中所有缺少的字母(字符串按字母顺序排列)
我正在尝试创建一个函数,用于查找字符串中所有缺失的字符,并返回所有缺失的字母。字符串将按字母顺序排列 例如,findMissing'abcde'应该返回'fghijklmnopqrstuvwxyz' 这是我的密码,它只返回第一个丢失的字母:Javascript 查找字符串中所有缺少的字母(字符串按字母顺序排列),javascript,string,algorithm,Javascript,String,Algorithm,我正在尝试创建一个函数,用于查找字符串中所有缺失的字符,并返回所有缺失的字母。字符串将按字母顺序排列 例如,findMissing'abcde'应该返回'fghijklmnopqrstuvwxyz' 这是我的密码,它只返回第一个丢失的字母: function findMissing(str) { for (var i = 0; i < str.length; i++) { var code = str.charCodeAt(i);
function findMissing(str) {
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code !== str.charCodeAt(0) + i) {
return String.fromCharCode(code - 1);
}
}
return undefined;
}
findMissing("abce");
//returns 'd'
在for循环中使用return会导致循环中断。
使用数组填充,然后返回数组
function findMissing(str) {
var array = [];
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code !== str.charCodeAt(0) + i) {
array.push(String.fromCharCode(code - 1));
}
}
return array;
}
myArray = findMissing("abce");
在for循环中使用return会导致循环中断。
使用数组填充,然后返回数组
function findMissing(str) {
var array = [];
for (var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
if (code !== str.charCodeAt(0) + i) {
array.push(String.fromCharCode(code - 1));
}
}
return array;
}
myArray = findMissing("abce");
可能的替代解决方案,作为奖励 常数a='abcdefghijklmnopqrstuvwxyz'; 常数r=s=>a.replace/\w/g,m=>s.includesm?:M
控制台。logr'abcd' 可能的替代解决方案,作为奖励 常数a='abcdefghijklmnopqrstuvwxyz'; 常数r=s=>a.replace/\w/g,m=>s.includesm?:M
控制台。logr'abcd' 我认为这要简单得多
const findMissing = (str) => {
let missing = '';
for (let s of 'abcdefghijklmnopqrstuvwxyz') {
if (str.indexOf(s) === -1) missing += s;
}
return missing;
}
我认为这要简单得多
const findMissing = (str) => {
let missing = '';
for (let s of 'abcdefghijklmnopqrstuvwxyz') {
if (str.indexOf(s) === -1) missing += s;
}
return missing;
}
试试这个:
函数findmisingstr{
让allLetters=abcdefghijklmnopqrstuvxyz.split;
让inputLetters=str.split;
对于let i=0;ifunction findMissing(str) {
let alphabet="abcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if (alphabet.indexOf(char)!==-1) {
alphabet=alphabet.replace(char,'');
}
}
return alphabet;
}
console.log(findMissing("abce"));
遵循您最初的代码方法,并进行一些小的更改:
function findMissing(str) {
let alphabet="abcdefghijklmnopqrstuvwxyz";
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if (alphabet.indexOf(char)!==-1) {
alphabet=alphabet.replace(char,'');
}
}
return alphabet;
}
console.log(findMissing("abce"));
foor循环中的return语句导致循环退出建议使用缺少的列表,初始为空,并写入缺少的.pushString.fromCharCodecode-1;而不是返回String.FromCharCode-1;根据您的定义,为什么场景findMissing'abcde'返回包含e的efghijklmnopqrstuvwxyz?@esqew很抱歉我输入错误,现在它已修复。foor循环中的return语句会导致循环退出建议使用缺少的列表,最初为空,并写入缺少的。pushString.fromCharCodecode-1;而不是返回String.FromCharCode-1;根据您的定义,为什么使用'abcde'的场景返回包含e的efghijklmnopqrstuvwxyz?@esqew抱歉我输入错误,现在它已修复。它仍然只返回d?很遗憾,是的,仍然只返回d?很遗憾,是的