Javascript 使用嵌套for循环比较两个数组
问题:给定两个数组Javascript 使用嵌套for循环比较两个数组,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,问题:给定两个数组x和y,x是Alice的分数,而y是Bob的分数。比较Alice和Bob之间的相似指数,对大于每个比较指数的人给予1分(如果相等,则不得分) 输入: x = [4,1,6] y = [1,1,5] 预期产出: {Alice:2, Bob: 0} 我的代码: x = [4,1,6] y = [1,1,5] results = {'Alice':0, 'Bob': 0} for (var i = 0; i < x.length; i++){ for (var j
x
和y
,x
是Alice的分数,而y
是Bob的分数。比较Alice和Bob之间的相似指数,对大于每个比较指数的人给予1分(如果相等,则不得分)
输入:
x = [4,1,6]
y = [1,1,5]
预期产出:
{Alice:2, Bob: 0}
我的代码:
x = [4,1,6]
y = [1,1,5]
results = {'Alice':0, 'Bob': 0}
for (var i = 0; i < x.length; i++){
for (var j = 0; j < y.length; j++){
if (x[i] > y[j]){
results['Alice'] += 1
}else if (x[i] < y[j]){
results['Bob'] += 1
}
}
}
console.log(results)
问题:
我的代码哪里出错了?错误在于您查看了所有可能的对,第一个值来自第一个数组,第二个值来自第二个数组。但只需要比较处于相同位置的值。因此,您只需要一个循环:
x=[4,1,6]
y=[1,1,5]
结果={'Alice':0,'Bob':0}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i] console.log(results)
错误在于您查看所有可能的对,第一个值来自第一个数组,第二个值来自第二个数组。但只需要比较处于相同位置的值。因此,您只需要一个循环:
x=[4,1,6]
y=[1,1,5]
结果={'Alice':0,'Bob':0}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i] console.log(results)
问题在于不应该使用嵌套循环。您在这里所做的是将Alice的所有结果与Bob的所有结果按以下顺序进行比较:
- 爱丽丝[0]对鲍勃[0]-爱丽丝得1分
- 爱丽丝[0]对鲍勃[1]-爱丽丝得1分
- 爱丽丝[0]对鲍勃[2]-鲍勃得1分
- 爱丽丝[1]对鲍勃[0]-平局
- 爱丽丝[1]对鲍勃[1]-平局
- 爱丽丝[1]对鲍勃[2]-鲍勃得1分
- 爱丽丝[2]对鲍勃[0]-爱丽丝得1分
- 爱丽丝[2]对鲍勃[1]-爱丽丝得1分
- 爱丽丝[2]对鲍勃[2]-爱丽丝得1分
j
,只需使用i
var x=[4,1,6]
变量y=[1,1,5]
风险值结果={
“Alice”:0,
“Bob”:0
}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i] console.log(results)
问题在于不应该使用嵌套循环。您在这里所做的是将Alice的所有结果与Bob的所有结果按以下顺序进行比较:
- 爱丽丝[0]对鲍勃[0]-爱丽丝得1分
- 爱丽丝[0]对鲍勃[1]-爱丽丝得1分
- 爱丽丝[0]对鲍勃[2]-鲍勃得1分
- 爱丽丝[1]对鲍勃[0]-平局
- 爱丽丝[1]对鲍勃[1]-平局
- 爱丽丝[1]对鲍勃[2]-鲍勃得1分
- 爱丽丝[2]对鲍勃[0]-爱丽丝得1分
- 爱丽丝[2]对鲍勃[1]-爱丽丝得1分
- 爱丽丝[2]对鲍勃[2]-爱丽丝得1分
j
,只需使用i
var x=[4,1,6]
变量y=[1,1,5]
风险值结果={
“Alice”:0,
“Bob”:0
}
对于(变量i=0;iy[i]){
结果['Alice']+=1
}else如果(x[i] console.log(results)
您正在将x数组的每个元素与y数组的所有元素进行比较。为了获得预期的输出,您需要将第一个元素或数组x与数组y的第一个元素进行比较,将第二个元素与第二个元素进行比较
我希望这有帮助 您正在将x数组的每个元素与y数组的所有元素进行比较。为了获得预期的输出,您需要将第一个元素或数组x与数组y的第一个元素进行比较,将第二个元素与第二个元素进行比较 我希望这有帮助
{Alice: 5, Bob: 2}