对于数组 B 中的每个值,想要在 A 中找到连续的值
for every value in array B, want to find the consecutive values in A
我正在尝试编写一个小的 JS 程序。对于数组 B 中的每个值,我想在 A 中找到总和为 B 的那个值的连续值。
我正在尝试打印数组 A 中的元素,使其与数组 B 中的连续总和相匹配。
我在 this JSFiddle page 上写了代码,但我不确定 B 是否包含 N 个元素...
能告诉我jQuery怎么写吗?输出它应该是 myArray 中的元素,以便它与 myOtherArray 中的连续总和相匹配
如果包含 N 个元素,myArray[0] + myArray1 将不起作用。
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");
}
}
}
由于标准定义不明确,我相信这可能与您正在寻找的内容相似
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>')
}
它将数组中的所有元素相加到当前索引,并检查该值是否存在于其他数组中
我回答这个问题是在赌一把..但我假设你想继续在你的数组中添加两个彼此相邻的索引,看看它们是否等于中的任何值你的第二个数组?
另外,我不知道你为什么要使用嵌套循环。只需要遍历一个数组,不需要遍历两个
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");
}
}
结果应该吐"matching"两次
因为2+3 = 5,存在于第二个数组中。而3+4 = 7,也存在于第二个数组中。
回答我是如何理解这个问题的: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]);
}
}
}
我正在尝试编写一个小的 JS 程序。对于数组 B 中的每个值,我想在 A 中找到总和为 B 的那个值的连续值。
我正在尝试打印数组 A 中的元素,使其与数组 B 中的连续总和相匹配。
我在 this JSFiddle page 上写了代码,但我不确定 B 是否包含 N 个元素...
能告诉我jQuery怎么写吗?输出它应该是 myArray 中的元素,以便它与 myOtherArray 中的连续总和相匹配 如果包含 N 个元素,myArray[0] + myArray1 将不起作用。
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");
}
}
}
由于标准定义不明确,我相信这可能与您正在寻找的内容相似
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>')
}
它将数组中的所有元素相加到当前索引,并检查该值是否存在于其他数组中
我回答这个问题是在赌一把..但我假设你想继续在你的数组中添加两个彼此相邻的索引,看看它们是否等于中的任何值你的第二个数组?
另外,我不知道你为什么要使用嵌套循环。只需要遍历一个数组,不需要遍历两个
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");
}
}
结果应该吐"matching"两次
因为2+3 = 5,存在于第二个数组中。而3+4 = 7,也存在于第二个数组中。
回答我是如何理解这个问题的: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]);
}
}
}