gpt4 book ai didi

javascript - 使用 'count' 变量添加到对象时,var 'count' 仍然为 0

转载 作者:行者123 更新时间:2023-12-03 06:11:51 25 4
gpt4 key购买 nike

我正在进行编码练习,并对这个函数感到困惑。我试图创建的函数是接受一个字符串,记录每个单词的重复次数。问题是当我尝试使用 myObject.key = value 添加到对象中时,在传递 var 计数时,放入 myObject 中的计数仍然为 0,即使它正在更新。

function countWords(string) {
var myArray = string.split(" ");
var myObject = {};

for (var i=0; i<myArray.length; i++) {
var currentWord = myArray[i];
//var count2 = 0;
var count = 0;

for (var j=i+1; j<myArray.length; j++) {
var nextWord = myArray[j];
console.log(currentWord + ' and a ' + nextWord)
console.log('countBefore: '+count)
if (currentWord===nextWord) {
count += 1;
}
console.log('countAfter: '+count)
}//for loop2

console.log('countOutside: '+count)
myObject[currentWord] = count;
}// for loop

return myObject;
}

//console.log(countWords('blah blah the the the he she be'));
console.log(countWords('blah blah the the the she'));

一些打印语句可能是不必要的,但可能有助于理解,因此我将其保留。

最佳答案

我认为问题在于每个单词都会覆盖其之前任何相同单词的计数。因此,您要么需要在计数后删除每个单词,要么仅在新值更高时才更改特定单词的计数值。

function countWords(string) {
var myArray = string.split(" ");
var myObject = {};

for (var i=0; i<myArray.length; i++) {
var currentWord = myArray[i];
//var count2 = 0;
var count = 0;

for (var j=i+1; j<myArray.length; j++) {
var nextWord = myArray[j];
if (currentWord===nextWord) {
count += 1;
}
}
if (!myObject[currentWord] ||count > myObject[currentWord]){
myObject[currentWord] = count;
}
}// for loop

return myObject;
}

//console.log(countWords('blah blah the the the he she be'));
console.log(countWords('blah blah the the the she'));

如果您已经获得了单词的值,那么您可以通过不费心去计算单词来提高效率(因为您在以后的实例中肯定会得到更小的计数)

关于javascript - 使用 'count' 变量添加到对象时,var 'count' 仍然为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280093/

25 4 0
文章推荐: javascript - Angular 矩没有显示任何东西
文章推荐: javascript - 如何将html