如果2个数组的值与特定序列匹配,我想比较2个数组。
例如:
x1=0 v1=3 x2=4 v2=2
k1=[3,6,9,12,15,18] k2=[6,8,10,12,14,16]
将返回Yes,因为12与数组3匹配。
x1=0 v1=2 x2=5 v2=3
k1=[2,4,6,8,10,12,14] k2=[5,8,11,14,17,20,23]
将返回No,因为尽管14匹配但在特定数组序列上不匹配。
function car(x1, v1, x2, v2) {
let k1 = [];
let k2 = [];
for (var i = x1; i <= 10000; i+=v1) {
k1.push(i)
}
for (var i = x2; i <= 10000; i+=v2) {
k2.push(i)
}
for (var i = 0; i <= 10000; i++) {
if (k1[i] === k2[i]) {
return 'YES'
break;
}
else {console.log('NO')}
}
}
答案 0 :(得分:0)
@okky,尝试以下解决方案,
问题在于你的循环概念。当您通过1000值时,元素的数量与您的值匹配的数量不同。我!K!有10个值,K2有7然后绝对值与未定义的原因和问题匹配。 此外,如果值不匹配,那么在else部分console.log中总是返回no,这样在控制台中显示no时输出值与不匹配的时间。但是在这里他只想显示一个时间值,所以我们必须在全局变量中赋值。如果任何案例匹配中断循环并将全局变量值指定为&#39; YES&#39;否则考虑默认值,这里没有。
var x1=0, v1=2, x2=5, v2=3,
k1=[3,6,9,12,15,18], k2=[6,8,10,12,14,16] ;
function car(x1, v1, x2, v2) {
let k1 = [];
let k2 = [];
for (var i = x1; i <= 1000; i+=v1) {
k1.push(i)
}
for (var i = x2; i <= 1000; i+=v2) {
k2.push(i)
}
var totCnt = 0;
if(k1.length > k2.length)
{
totCnt= k2.length;
}
else{
totCnt= k1.length;
}
var RetVal = "No";
for (var i = 0; i < totCnt; i++) {
if (k1[i] === k2[i]) {
RetVal ='YES'
break;
}
}
console.log(RetVal);
}
car(x1, v1, x2, v2);
&#13;