Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打印出现N次的第一个元素的值_Javascript_Arrays - Fatal编程技术网

Javascript 打印出现N次的第一个元素的值

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

所以我正在制作这个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
-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_单位;}
请在问题中添加代码,不要在注释中添加。谢谢还要解释问题——代码做了什么,而不是你期望的?