对于数组B中的每个值,想要在A中找到连续值

时间:2015-01-20 17:19:32

标签: javascript arrays function loops

我正在尝试编写一个小型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");
        }

    }

}

3 个答案:

答案 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]);
        }
    }
}