gpt4 book ai didi

javascript - 在数组中查找相同数字的最长出现次数

转载 作者:数据小太阳 更新时间:2023-10-29 05:49:58 25 4
gpt4 key购买 nike

使用 JavaScript,我试图找到一种方法来查找数组中相同数字(在本例中为 1)的最长出现次数。

例如,这是一个示例数组:[2,5,3,1,1,1,3,7,9,6,4,1,1,1,1,1,4,7,2,3,1,1,4, 3]

我想编写一个返回“5”的函数,因为数字 1 连续出现了 5 次。 (它也连续出现 3 次和 2 次,但我是在最长的一次之后)。

到目前为止,我已经写了:

function streak(arr) {
var i,
temp,
streak,
length = arr.length;

for(i=0; i<length; i++) {
if (arr[i] === 1) {
streak += 1;
} else {
temp = streak;
break;
}
}
}

我知道我需要某种方式来了解我在发现事件时离开的地方,但我感觉有点卡住了。

有什么建议吗?

最佳答案

我稍微修改了你的函数。您需要将最高连胜存储为与当前连胜不同的变量,并在循环中必要时覆盖它 - 最后在函数结束时返回该变量。

function streak(arr) {
var i,
temp,
streak,
length = arr.length,
highestStreak = 0;

for(i = 0; i < length; i++) {
// check the value of the current entry against the last
if(temp != '' && temp == arr[i]) {
// it's a match
streak++;
} else {
// it's not a match, start streak from 1
streak = 1;
}

// set current letter for next time
temp = arr[i];

// set the master streak var
if(streak > highestStreak) {
highestStreak = streak;
}
}

return highestStreak;
}

var array = [2,5,3,1,1,1,3,7,9,6,4,1,1,1,1,1,4,7,2,3,1,1,4,3];

console.log(streak(array)); // 5

如果您还想跟踪最高连胜的是什么,请在函数开头定义另一个变量,在保存最高连胜时保存它的值,然后返回它作为一个数组:

    // set the master streak var
if(streak > highestStreak) {
highestStreakValue = temp;
highestStreak = streak;
}
}

return [highestStreak, highestStreakValue];


var array = [2,5,3,1,1,1,3,7,9,6,4,'a','a','a','a','a',4,7,2,3,1,1,4,3];
console.log(streak(array)); // [5, "a"]

Demo returning both

关于javascript - 在数组中查找相同数字的最长出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com