我正在尝试编写一个小型JS程序。对于数组B中的每个值,我想在A中找到与B值相加的连续值。
我试图打印数组A中的元素,使其与数组B中的连续和相匹配。
我在this JSFiddle page上写了代码,但我不确定B是否包含N个元素...
你能告诉我如何在jQuery中编写它吗?输出它应该在myArray中的元素,以便它匹配myOtherArray中的连续总和 如果myArray [0] + myArray1包含N个元素,则它将不起作用。
var myArray = [ 2, 3, 4 ];
var myOtherArray = [ 5, 6, 7 ];
for ( var i = 0; i < myOtherArray.length; i++ ) {
for ( var j = 0; j < myArray.length; j++ ) {
if ( myOtherArray[i] == myArray[0] +myArray[1] ) {
console.log (myArray[ i ]);
}
else if(myOtherArray[i] == myArray[1] +myArray[2]) {
console.log (myArray[ i ]);
}
else{
console.log ("no matching");
}
}
}
答案 0 :(得分:1)
我正在通过回答这个问题进行赌博..但我假设您要继续在数组中添加两个彼此相邻的索引,以查看它们是否等于您的第二个中的任何值阵列
另外,我不知道你为什么要使用嵌套循环。您只需要遍历一个数组,而不是两个数组。
var myArray = [ 2, 3, 4 ];
var myOtherArray = [ 5, 6, 7 ];
var sum = 0;
for ( var i = 0; i < myArray.length-1; i++ ) {
sum = myArray[i] +myArray[i+1];
if (myOtherArray.indexOf[sum] != -1 ) {
console.log ("matching");
}
else {
console.log ("no matching");
}
}
结果应该两次吐出“匹配”。
因为2 + 3 = 5,它存在于第二个数组中。 3 + 4 = 7,也存在于第二个数组中。
答案 1 :(得分:0)
由于标准没有明确定义,我相信这可能与您正在寻找的相似
var sum = 0;
for (var j = 0; j < myArray.length; j++) {
sum += myArray[j];
var isMatch = myOtherArray.indexOf(sum) > -1,
matchText = isMatch ? ' true' : ' false';
$('body').append('Match for ' + sum + ' is' + matchText + '<br>')
}
它将数组中的所有元素与当前索引相加,并检查该值是否存在于其他数组
中的 DEMO 强>
答案 2 :(得分:0)
回答我如何理解这个问题:http://jsfiddle.net/qqqs8aLc/1/
var A = [ 5, 6, 7 ];
var B = [ 2, 3, 4 ];
var Alen = A.length;
var Blen = B.length;
for(var i=0; i < Alen; i++){
for(var j=0; j < Blen; j++){
if(A[i] == (B[j] + B[j+1])){
console.log("%d = (%d, %d)",A[i], B[j], B[j+1]);
}
}
}