Javascript 打印出现N次的第一个元素的值
所以我正在制作这个ReactJS应用程序 作为过滤系统的一部分,我有以下问题: 简化的 我有一个数组,假设它是一个简单的数组,比如Javascript 打印出现N次的第一个元素的值,javascript,arrays,Javascript,Arrays,所以我正在制作这个ReactJS应用程序 作为过滤系统的一部分,我有以下问题: 简化的 我有一个数组,假设它是一个简单的数组,比如let arr=[1,7,4,3,4,7] 我还从用户那里输入了一个N变量,这是一个简单的整数输入 我需要从重复N次的数组中返回或console.log()整数。如果存在非重复编号日志err msg或返回-1 比如说, 设arr=[1,7,4,3,4,7]和设n=2我得到7-cos 7重复2次 设arr=[7,4,5,3,5,5,3,4,3,2,1]和设n=3我得到5
let arr=[1,7,4,3,4,7]代码>
我还从用户那里输入了一个N变量,这是一个简单的整数输入
我需要从重复N次的数组中返回或console.log()
整数。如果存在非重复编号日志err msg或返回-1
比如说,
设arr=[1,7,4,3,4,7]
和设n=2代码>我得到7
-cos 7重复2次
设arr=[7,4,5,3,5,5,3,4,3,2,1]代码>和设n=3代码>我得到5
-cos 5重复3次
设arr=[1,6,4,6,4,6]代码>和设n=4代码>我得到-1
或cl(“err”)
-因为没有东西会重复4次
注释代码:
const getRepeatingNumber = (arr, n) => {
for (unit of arr) {
if (unit === maj_unit) count++;
else {
count--;
if (count === 0) {
maj_unit = unit;
count = 1;
}
}
}
return maj_unit;
}
下面是我希望能解决您问题的代码。
您需要循环所有数组值,找出每个值出现的次数,并在结果数组中保存出现的次数,因为可能有多个值出现n
次数。i、 e.在您提供的数组中,让arr=[1,7,4,3,4,7]代码>7和4出现了两次,但我返回结果[0],因为您可能只需要n
次的第一个出现值
let arr = [1,7,4,3,4,7];
let getRepeatingNumber = function (arr, n) {
let result = [];
arr.forEach((value) => {
if (arr.filter(val => val === value).length === n && !result.includes(value)) {
result.push(value);
}
});
return result.length ? result[0] : -1
}
console.log(getRepeatingNumber(arr, 2)); // 7
您可以使用array#every
,创建累加器并将数字作为键,将其频率作为值,一旦值达到指定的出现次数,使用return false
中断循环,然后返回结果
const getRepeatingNumber=(arr,count)=>{
让result=-1,hash={};
arr.every(n=>{
散列[n]=(散列[n]| | 0)+1;
if(散列[n]==计数){
结果=n;
返回false;
}
返回true;
});
返回结果;
}
log(getRepeatingNumber([1,7,4,3,4,7],2));
日志(getRepeatingNumber([7,4,5,3,5,5,3,4,3,2,1],3));
log(getRepeatingNumber([1,6,4,6,4,6],4))你试过什么?const getRepeatingNumber=(arr,n)=>{for(arr的单位){if(unit==maj_单位)count++;else{count--;if(count==0){maj_单位=unit;count=1;}}返回maj_单位;}
请在问题中添加代码,不要在注释中添加。谢谢还要解释问题——代码做了什么,而不是你期望的?