Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 - Fatal编程技术网

Javascript 检查数组中的值是否存在公共差异

Javascript 检查数组中的值是否存在公共差异,javascript,Javascript,我有一个示例数组 常数arr=[0,2,4,6] 我想检查它们是否有共同的区别,在上面的数组中是2,是 可能有更有效的方法来做到这一点。我尝试使用一个简单的for循环: 常数arr=[0,2,4,6]; forlet i=0;我你可以这样做。最好在发现错误时立即停止,而不是测试所有值 常数arr=[0,2,4,6] var r=真 对于var i=1;i检查数字的总和是否达到所需的总和,以及其余数字是否与注释中所需的差值相同。这应该是一个单独的问题 加起来直到s>=总和。如果s不等于集合和,

我有一个示例数组

常数arr=[0,2,4,6]

我想检查它们是否有共同的区别,在上面的数组中是2,是

可能有更有效的方法来做到这一点。我尝试使用一个简单的for循环:

常数arr=[0,2,4,6];
forlet i=0;我你可以这样做。最好在发现错误时立即停止,而不是测试所有值

常数arr=[0,2,4,6] var r=真
对于var i=1;i检查数字的总和是否达到所需的总和,以及其余数字是否与注释中所需的差值相同。这应该是一个单独的问题

加起来直到s>=总和。如果s不等于集合和,则返回false 如果还剩下数字{ 设s=0, idx=arr.findIndexx=>s+=x>=sum+1 ifs!==总和返回false ifarr.length-idx<3返回真值 常数差=arr[idx+1]-arr[idx]
虽然++idx假设数组已排序,但使用.each可以非常简单地完成此操作

常数arr=[0,2,4,6]; 常数itvl=arr[1]-arr[0]; const result=arr.slice0,-1.everyn,i=> itvl===arr[i+1]-n
console.logresult;我假设您所说的差异是阶跃值。为此,首先查找前两个元素之间的差异;然后检查是否相同的差异适用于所有连续值

const arr = [0, 2, 4, 6];
let flag = true;
diff = arr[1] - arr[0];
for(let i = 1; i < arr.length-1; i++){
           if(arr[i+1] - arr[i]  != diff ){
              flag = false;
              break;
           } 


     }
console.log(flag)

代码假设数组大小至少为2。如果不能保证这一点,则添加一个if保护。

这是否回答了您的问题?@Justinas我认为OP不想检查数组是否有公约数。他们想通过数组检查连续项之间的差异是否相同。根据有关eg,我会说差异ce是2,我想用更数学的方法,检查一个差为2的算术序列,希望它清晰,a+n-1*d,d=2如果其中任何一个不匹配,立即返回false。实际上,如果差与2不同,你无法处理。他没有要求。他可能在学习作业或其他东西。他只是需要知道如何提前终止循环。他没有说差异总是2,他在上面的数组中写道,这是2,是的;就性能而言,您不会在发现错误时立即停止,因此这不是优化的。@DJ9114:它确实停止了。这是使用的好处之一。每一次;一旦证明不是每次迭代都重新开始,它就会停止rns true.,,可能是表达这个@dj的最干净的方式。没有问题。某些方法也以这种方式进行了优化。阅读slice在链接中所做的操作。知道任何一种方法都是很好的选择和升级!解决方案,尽管你不需要其他部分,如果出现错误,你会记录两次