我被困住了,想知道是否有人可以帮助我。如何在下面创建一个变量来重置并捕获我的数组中先前迭代的字符?
下面,我尝试取一个字符串(var str = "example Hello apple pie;"
),将其拆分为单个单词(例如,["example", "Hello", "apple", "pie"]
),然后一次将一个单词拆分为单个字符(例如。[["e", "x", "a", "m", "p", "l", "e"], ["H", "e"...
并排序,以便每个重复的字母与其他字母相邻(例如,a,e,e,l,m,p,x
),如果有任何欺骗的话。在我们的第一个例子中,我们可以看到有两个重复一旦它被排序,它就会在“示例”中彼此相邻。
然后我想在排序后的单词中一次比较两个字符。我想要比较prev
和currentChar
。我不知道如何构造代码以便能够做到这一点并走到我想要去的地方。首先需要将变量"prev"
设置为默认值"0"
,并将currentChar
设置为上述单词中的第一个字符(即,“a”) 。由于它们不相等,我们将跳到下一个字母,并用“a”重置prev
。下一个字母是“e”。所以“e”不等于“a”,我们再向前移动一个字符,直到prev
和currentChar
== e
。那时,我们将counter++
添加到计数器1,并继续到单词的结尾,这样我就可以添加currentItem
(即,键将是“示例”)到hashObject,其值为counter.length,使hashObject成为一个单词列表,每个单词旁边都有相应数量的匹配对。
var str = "Hello apple pie";
function LetterCountI(str){
var input = str.split(" ");
var hashObject = {};
for(var i = 0; i<input.length; i++) {
currentItem = input[i];
var currentWordIntoChars = currentItem.split("").sort();
var counter = 0;
var prev = "0";
console.log(currentWordIntoChars + " ");
for(var e in currentWordIntoChars) {
var currentChar = currentWordIntoChars[e];
counter++;
console.log(currentChar + " = Current Item #" + counter);
//console.log(currentItem + " = the name of the item");
}
console.log("\n");
}
}
console.log(LetterCountI(str));