Javascript 如果数组中任意元素的和等于给定值,则检查数组 [1,2,3,6],3=True
您可以使用函数Javascript 如果数组中任意元素的和等于给定值,则检查数组 [1,2,3,6],3=True,javascript,arrays,Javascript,Arrays,您可以使用函数some检查至少一个操作是否为True 这种方法遵循您的用例 let check=(sum,arr)=>arr.concat(arr[0])。一些((n,i,a)=>(n+a[i+1])==sum); 控制台日志(检查(3[1,2,3,6]); 控制台日志(检查(9[1,2,3,6]); 控制台日志(检查(5[1,2,3,6]); 控制台日志(检查(10[1,2,3,6]); 控制台日志(检查(10[6,2,3,1]); 控制台日志(检查(6[6,3,3,1]); 控制台日志(检查
some
检查至少一个操作是否为True
这种方法遵循您的用例
let check=(sum,arr)=>arr.concat(arr[0])。一些((n,i,a)=>(n+a[i+1])==sum);
控制台日志(检查(3[1,2,3,6]);
控制台日志(检查(9[1,2,3,6]);
控制台日志(检查(5[1,2,3,6]);
控制台日志(检查(10[1,2,3,6]);
控制台日志(检查(10[6,2,3,1]);
控制台日志(检查(6[6,3,3,1]);
控制台日志(检查(7[3,1,2,4]);
控制台日志(检查(7,[])代码>
.as console wrapper{max height:100%!important;top:0;}
您必须遍历值数组。不熟悉javascript,以下是java函数中的代码:
[1,2,3,6], 3 = True <== 1+2=3
[1,2,3,6], 9 = True <== 3+6=9
[1,2,3,6], 5 = True <== 2+3=5
[1,2,3,6], 10 = False <== 1+2, 2+3, 3+6, 6+1 not equal to 10
[6,2,3,1], 10 = False <== 6+2, 2+3, 3+1, 1+6 not equal to 10
[6,3,3,1], 6 = True <== 3+3=6
公共布尔校验和(){
int-sumValue=10;//要检查的值可以作为参数传入
int-arr[4]={1,2,4,6};
对于(int n=0;n
希望这有帮助 这里有一种非常简单的方法,可以检查数组中的两个数字是否等于一个值。注意,这只允许不同的和(与自身相加的数字不计算)
功能测试(n,arr){
返回arr.some((项,i)=>arr.slice(i+1)。包括(n项))
}
设arr=[1,2,3,6]
log(test(5,arr))//true 2+3
log(test(4,arr))//真1+3
log(test(12,arr))//false,因为6+6不计算
console.log(test(10,arr))//false无和
检查(4[1,2,3,6])
返回false。可能我误解了,但它不应该是真的,因为1+3=4I读取:如果给定的和等于数组中**任意**两个元素的和,函数需要返回true
给定的和:4等于两个元素的和[1,3]在数组中。你的问题是什么?你考虑过这个问题吗?你有没有研究过如何解决这个问题?你发现了什么?可能是
public boolean checkSum(){
int sumValue = 10; //value you want to check, could be passed in as a parameter
int arr[4] = {1,2,4,6};
for (int n = 0; n < arr.length; n++){
for (int x = 0; x < arr.length; x++){
if ( (arr[n] + arr[x] == sumValue) && (n != x) ){ //need to ensure same slot is being added
return true;
}
}
}
return false;
}