Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 寻找离群值_Javascript_Arrays - Fatal编程技术网

Javascript 寻找离群值

Javascript 寻找离群值,javascript,arrays,Javascript,Arrays,我正试图解决CodeWars.com上的一个编码挑战,我希望在正确的方向上得到一点推动。下面的函数应该取一个数字串,比如2 4 7 8 10或1 2 2等,并输出与其他数字在均匀度、偶数或奇数方面不同的数字位置。CodeWars.com的链接位于: 我的函数似乎在测试中失败,其中最后一个数字是不同于100 100 1或5 3 2的数字。你知道为什么我的功能是这样执行的吗?我一直在看它,我不明白它为什么会这样做: 函数IQTestNumber{ 设numArr=numbers.split'; 设

我正试图解决CodeWars.com上的一个编码挑战,我希望在正确的方向上得到一点推动。下面的函数应该取一个数字串,比如2 4 7 8 10或1 2 2等,并输出与其他数字在均匀度、偶数或奇数方面不同的数字位置。CodeWars.com的链接位于:

我的函数似乎在测试中失败,其中最后一个数字是不同于100 100 1或5 3 2的数字。你知道为什么我的功能是这样执行的吗?我一直在看它,我不明白它为什么会这样做:

函数IQTestNumber{ 设numArr=numbers.split'; 设obj={}; obj.evenCount=0; obj.oddCount=0; console.lognumArr; 对于设i=0;i
if (obj.evenCount < obj.oddCount) {
之前,你在检查哪个指数更高(即位置),但实际上你想检查哪个计数/频率更高

请参见下面的工作示例:

函数IQTestNumber{ 设numArr=numbers.split'; 设obj={}; obj.evenCount=0; obj.oddCount=0; console.lognumArr; 对于设i=0;i0&&obj.evenCount>0&&obj.oddCount!==obj.evenCount{//提前终止条件 break;//循环中断是指奇数和偶数之间的差异已经存在 } } 如果obj.evenCount
if (obj.evenCount < obj.oddCount) {
之前,你在检查哪个指数更高(即位置),但实际上你想检查哪个计数/频率更高

请参见下面的工作示例:

函数IQTestNumber{ 设numArr=numbers.split'; 设obj={}; obj.evenCount=0; obj.oddCount=0; console.lognumArr; 对于设i=0;i0&&obj.evenCount>0&&obj.oddCount!==obj.evenCount{//提前终止条件 break;//循环中断是指奇数和偶数之间的差异已经存在 } } 如果obj.evenCountconsole.logiqTest5 3 2;//3项:2如前所述,代码中的问题是,您试图确定哪一个是多数奇数还是偶数,但您可以通过比较上次出现的位置obj.odd和obj.偶数,而不是obj.evenCount和obj.oddCount的出现量来实现这一点

只需将其更改为:如果obj.evenCount 也就是说,您的函数将始终查看整个数组,但是您可以通过查看前三个数字来确定异常值是偶数还是奇数。无论是偶数还是奇数,取较小者为异常值

考虑到这一点,我们可以通过将其分为两个步骤来提高效率:

使用前三个数字确定异常值是奇数还是偶数

当我们找到第一个异常值时退出,而不是搜索整个数组

函数iqTeststringOfNumbers{ 设arr=stringOfNumbers.split'; 设desiredRemainder=arr .0,3 .ReduceEventCount,项=>项%2===0?evenCount+1:evenCount,0 > 1 1. : 0; 返回arr.findIndexi=>i%2===desiredRemainder+1; } console.logiqTest3 4 7 9; console.logiqTest1 100;
console.logiqTest5 2 3 如前所述,代码中的问题是您试图确定哪一个是多数奇数或偶数,但您可以通过比较上次出现的位置obj.odd和obj.偶数,而不是obj.evenCount和obj.oddCount

只需将其更改为:如果obj.evenCount 也就是说,您的函数将始终查看整个数组,但是您可以确定异常值是偶数还是奇数 只要看看前三个数字。无论是偶数还是奇数,取较小者为异常值

考虑到这一点,我们可以通过将其分为两个步骤来提高效率:

使用前三个数字确定异常值是奇数还是偶数

当我们找到第一个异常值时退出,而不是搜索整个数组

函数iqTeststringOfNumbers{ 设arr=stringOfNumbers.split'; 设desiredRemainder=arr .0,3 .ReduceEventCount,项=>项%2===0?evenCount+1:evenCount,0 > 1 1. : 0; 返回arr.findIndexi=>i%2===desiredRemainder+1; } console.logiqTest3 4 7 9; console.logiqTest1 100;
console.logiqTest5 2 3 根据数据的这种情况:

找出给定的数字中哪一个与其他数字不同。鲍勃观察到一个数字通常在均匀度上不同于其他数字

我将给出一种使用内置数组方法的替代方法,对于标准方法,请参考Nick Parsons的答案:

函数IQTestNumber { 返回1+numbers.split.findIndex x、 idx,arr=>arr.filtery=>y%2==x%2.length==1 ; } console.logiqTest2 4 7 8 10;//3项目:7 console.logiqTest1 2;//1项目:1 console.logiqTest100 1;//3项目:1
console.logiqTest5 3 2;//3项:2基于此数据条件:

找出给定的数字中哪一个与其他数字不同。鲍勃观察到一个数字通常在均匀度上不同于其他数字

我将给出一种使用内置数组方法的替代方法,对于标准方法,请参考Nick Parsons的答案:

函数IQTestNumber { 返回1+numbers.split.findIndex x、 idx,arr=>arr.filtery=>y%2==x%2.length==1 ; } console.logiqTest2 4 7 8 10;//3项目:7 console.logiqTest1 2;//1项目:1 console.logiqTest100 1;//3项目:1
console.logiqTest5 3 2;//3项:2你能在CodeWars上添加一个特定kata的链接吗?@Tyler,我是如何确定哪种类型的偶数/奇数构成了字符串的大部分,哪种类型是异常值。“计算过的更少的是只出现一次的数字类型。@BrianHernandez这不是代码所做的。”。要确定哪一个是多数,您需要比较计数evenCount和oddCount,而不是位置。@TylerRoper啊,这是我没有看到的。非常感谢。我也会试试斯宾塞的建议,看看是否能改善我的功能。谢谢大家。你能给CodeWars上的特殊kata添加一个链接吗?@Tyler,这就是我如何确定哪种类型的偶数/奇数构成了字符串的大部分,哪种类型是异常值。“计算过的更少的是只出现一次的数字类型。@BrianHernandez这不是代码所做的。”。要确定哪一个是多数,您需要比较计数evenCount和oddCount,而不是位置。@TylerRoper啊,这是我没有看到的。非常感谢。我也会试试斯宾塞的建议,看看是否能改善我的功能。谢谢大家,好家伙!当您遇到以下条件时,也许可以很快打破循环:obj.oddCount>0&&obj.evenCount>0&&obj.oddCount!==obj.好家伙!当您遇到以下条件时,也许可以很快打破循环:obj.oddCount>0&&obj.evenCount>0&&obj.oddCount!==偶数